配置文件的整合
- 集群中已安装hive的情况
将$HIVE_HOME/conf
下的hive-site.xml
拷贝到$SPARK_HOME/conf
中,即可
- 集群中未安装hive的情况
在$SPARK_HOME/conf
创建一个hive-site.xml
,再对xml文件配置一下可以访问的metadata即可
对应metadata的数据库驱动
- 将对应数据库的驱动放于
$SPARK_HOME/jars
目录下,这样Spark在启动的时候会去自动加载 - 在启动Spark时通过
-jars
去指定数据库驱动
推荐第一种做法
通过spark-shell来访问
启动spark-shell
spark/bin/spark-shell Spark context Web UI available at http://127.0.0.1:4040 Spark context available as 'sc' (master = local[*], app id = local-1533734039679). Spark session available as 'spark'.
通过sparksession访问hive
我们先看看是否能hive中已存在的表
scala> spark.sql("show tables").show()
+--------+------------+-----------+
|database| tableName|isTemporary|
+--------+------------+-----------+
| default| lj_sz_crawl| false|
| default| lj_sz_deal| false|
| default|lj_sz_number| false|
+--------+------------+-----------+
从显示的结果可以看出hive中的表是可以看的,我们再查看表中的数据
scala> spark.sql("select * from lj_sz_crawl limit 3").show()
+--------------------+--------------------+-----+-------+--------+--------+----+------+
| title| descri|price|acreage|position| type|high|direct|
+--------------------+--------------------+-----+-------+--------+--------+----+------+
|近地铁精装,疲惫身心的补给源泉,宜...|南向正规2房 客厅出阳台 交通便利...| 7000| 76.67| 福田区|2室2厅1卫 | 高| 北|
|佳兆业前海广场一期 2室1厅 6500元| 这个经纪人很懒,没写核心卖点| 6500| 77| 南山区|2室1厅1卫 | 高| 东南|
|京基东方华都 精装修 采光通风好 ...|正规一房一厅,房子精装修,干净整洁...| 4800| 41.82| 罗湖区|1室1厅1卫 | 高| 东南 南|
+--------------------+--------------------+-----+-------+--------+--------+----+------+
数据也是可以查询得到
在scala文件中访问hive
val spark = SparkSession
.builder()
.appName("Rating Data")
.enableHiveSupport()
.getOrCreate()
从spark2.0开始,出现的sparksession
来代替sparkcontext
,整合了hiveContext
和sqlContext
,我们只需要在创建SparkSession
的时候调用enableHiveSupport
方法即可在我们的程序中访问hive