Why
Hive管理的数据本身就带有表结构,比如数据类型,字段名在spark机器学习数据处理过程中,直接读取文件的方式需要从文件转换到dataframe,这个时候最麻烦的就是Schema如果打通hive和spark,我们就可以直接在hive中定义好表结构,在spark中直接使用。非常省事,也不用关心hive表数据是哪种文件格式了,RCFILE,SequenceFile, TextFile等全部兼容
How
环境准备
安装hive和安装spark具体安装过程这里就不详细介绍了。
主要讲下,spark如何整合hive
1. Hive配置文件拷贝
copy hive安装目录下的 hive-site.xml 到 $SPARK_HOME/conf 目录(如果采用ambari搭建的话,该步骤不用,因为ambari已经帮助拷贝了)
2. Hive配置文件拷贝
添加JDBC驱动:
export HIVE_HOME=/usr/hdp/2.3.4.0-3485/hive
export SPARK_CLASSPATH=$HIVE_HOME/lib/mysql-connector-java-5.1.26-bin.jar:$SPARK_CLASSPATH
注:mysql-connector-java-5.1.26-bin.jar可以上mysql官网下载
3. 运行spark-shell
运行sqlContext.tables("default").show
就可以看到hive中的数据了。