【大数据学习】之 用spark-sql和spark-shell操作hive里面的表数据

SparkSQL与Hive的交互有两种方式,一种是spark-sql,另一种是spark-shell。要注意,访问hive前要把$HIVE_HOME/conf/hive-site.xml拷贝到$SPARK_HOME/conf,还有必须要启动hdfs,因为hive的数据是存放在hdfs上的,既然要访问hive所以需要启动hdfs。


一、启动spark-sql连hive 
1、首先要配置spark-defaults.conf,

添加spark.executor.extraClassPath和spark.driver.extraClassPath,这两个同时指向我们存放JDBC驱动jar包的路径

如下图:
 【大数据学习】之 用spark-sql和spark-shell操作hive里面的表数据_第1张图片
2、启动spark-sql,
 
看启动日志是4041端口,在浏览器看看    UI界面,http://hadoop001:4041/jobs/ ,也成功启动了。
 
 
3、查询数据
查询一下是否可以查到hive上的数据,可以查到数据的
 
 
UI界面也会显示具体的信息

【大数据学习】之 用spark-sql和spark-shell操作hive里面的表数据_第2张图片

二、启动spark-shell连hive
前面是通过spark-sql与hive交互,而另一种方式是spark-shell,先启动spark-shell
 
连接成功后,看到有‘spark’这个上下文,可以用spark.sql查数据,比如查看哪个库,哪个表,再查某个表有什么数据
 
scala> spark.sql("show databases").show
 【大数据学习】之 用spark-sql和spark-shell操作hive里面的表数据_第3张图片
scala> spark.sql("use d5_hive").show      ## 选择使用哪个数据库
scala> spark.sql("show tables").show

【大数据学习】之 用spark-sql和spark-shell操作hive里面的表数据_第4张图片
 
scala> spark.sql("select * from page_views limit 5").show
 
也是同样可以查询到该表page_views的数据的。

另:如果在hive创建表,在Spark-SQL里面可以用吗?结果是没有任何问题的,这个就是metastore带来的最好的好处,当需要切换你的计算框架时,就非常方便。

你可能感兴趣的:(Spark,SQL)