Spark SQL官方释义

Spark SQL is Apache Spark's module
for working with structured data.

一、使用Spark SQL访问Hive需要将$HIVE_HOME/conf下的hive-site.xml拷贝到$SPARK_HOME/conf下,如果集群没有安装hive那么就在$SPARK_HOME/conf 下创建一个hive-site.xml,再配置一下可以访问metadata即可

二、启动spark访问hive 
1、HDFS必须保证启动了 
2、如果报错说找不到mysql驱动,那么在启动spark时通过–jars指定mysql驱动

3、启动命令

./spark-shell --master local[2]

4、列出hive的表

scala> spark.sql("show tables").show
+--------+-------------------+-----------+
|database|          tableName|isTemporary|
+--------+-------------------+-----------+
| default|                emp|      false|
| default|testhivedrivertable|      false|
+--------+-------------------+-----------+

5、查看emp表内容

scala> spark.sql("select * from emp").show
+-----+------+---------+----+----------+-------+------+------+
|empno| ename|      job| mgr|  hiredate|    sal|  comm|deptno|
+-----+------+---------+----+----------+-------+------+------+
| 7369| SMITH|    CLERK|7902|1980-12-17| 800.0| null| 20| | 7499| ALLEN| SALESMAN|7698| 1981-2-20| 1600.0| 300.0| 30| | 7521| WARD| SALESMAN|7698| 1981-2-22| 1250.0| 500.0| 30| | 7566| JONES| MANAGER|7839| 1981-4-2| 2975.0| null| 20| | 7654|MARTIN| SALESMAN|7698| 1981-9-28| 1250.0|1400.0| 30| | 7698| BLAKE| MANAGER|7839| 1981-5-1| 2850.0| null| 30| | 7782| CLARK| MANAGER|7839| 1981-6-9| 2450.0| null| 10| | 7788| SCOTT| ANALYST|7566| 1987-4-19| 3000.0| null| 20| | 7839| KING|PRESIDENT|null|1981-11-17| 5000.0| null| 10| | 7844|TURNER| SALESMAN|7698| 1981-9-8| 1500.0| 0.0| 30| | 7876| ADAMS| CLERK|7788| 1987-5-23| 1100.0| null| 20| | 7900| JAMES| CLERK|7698| 1981-12-3| 950.0| null| 30| | 7902| FORD| ANALYST|7566| 1981-12-3| 3000.0| null| 20| | 7934|MILLER| CLERK|7782| 1982-1-23| 1300.0| null| 10| | 8888| HIVE| PROGRAM|7839| 1988-1-23|10300.0| null| null| | 9999| Spark| Clerk|9999| 1988-2-23|10993.0| 20.0| null| +-----+------+---------+----+----------+-------+------+------+

6、下面方式同样可以查看表内容

scala> spark.table("emp").show

7、启动Spark SQL来访问

 ./spark-sql --master local[2]

查看所有表

spark-sql (default)> show tables;
17/11/21 16:40:18 INFO SparkSqlParser: Parsing command: show tables 17/11/21 16:40:25 INFO HiveMetaStore: 0: get_database: default 17/11/21 16:40:25 INFO audit: ugi=root ip=unknown-ip-addr cmd=get_database: default 17/11/21 16:40:25 INFO HiveMetaStore: 0: get_database: default 17/11/21 16:40:25 INFO audit: ugi=root ip=unknown-ip-addr cmd=get_database: default 17/11/21 16:40:25 INFO HiveMetaStore: 0: get_tables: db=default pat=* 17/11/21 16:40:25 INFO audit: ugi=root ip=unknown-ip-addr cmd=get_tables: db=default pat=* 17/11/21 16:40:28 INFO CodeGenerator: Code generated in 679.481418 ms database tableName isTemporary default dept false default emp false default testhivedrivertable false Time taken: 10.403 seconds, Fetched 3 row(s) 17/11/21 16:40:28 INFO CliDriver: Time taken: 10.403 seconds, Fetched 3 row(s)

三、join操作

spark-sql (default)> select a.ename,a.sal,b.deptno,b.dname from emp a join dept b on a.deptno=b.deptno; ename sal deptno dname SMITH 800.0 20 眼科 SMITH 800.0 20 病案科室 JONES 2975.0 20 眼科 JONES 2975.0 20 病案科室 CLARK 2450.0 10 肿瘤科 SCOTT 3000.0 20 眼科 SCOTT 3000.0 20 病案科室 KING 5000.0 10 肿瘤科 ADAMS 1100.0 20 眼科 ADAMS 1100.0 20 病案科室 FORD 3000.0 20 眼科 FORD 3000.0 20 病案科室 MILLER 1300.0 10 肿瘤科 Time taken: 14.438 seconds, Fetched 13 row(s)

我们把两张表放到memory里面去,因为spark-sql支持cache操作

spark-sql (default)> cache table emp;
spark-sql (default)> cache table dept;

此时我们再来进行join操作

spark-sql (default)> select a.ename,a.sal,b.deptno,b.dname from emp a join dept b on a.deptno=b.deptno; ename sal deptno dname SMITH 800.0 20 眼科 SMITH 800.0 20 病案科室 JONES 2975.0 20 眼科 JONES 2975.0 20 病案科室 CLARK 2450.0 10 肿瘤科 SCOTT 3000.0 20 眼科 SCOTT 3000.0 20 病案科室 KING 5000.0 10 肿瘤科 ADAMS 1100.0 20 眼科 ADAMS 1100.0 20 病案科室 FORD 3000.0 20 眼科 FORD 3000.0 20 病案科室 MILLER 1300.0 10 肿瘤科 Time taken: 1.081 seconds, Fetched 13 row(s)

对比两次的Time taken会发现做了cache后速度提高了很多,如果你的数据量大就越明显。

取消cache

uncache table emp;

转载于:https://www.cnblogs.com/kxgdby/p/7956645.html

Spark SQL整合Hive相关推荐

  1. spark sql读取hive底层_scala – 从一个hive表中读取并使用spark sql写回来

    我正在使用Spark SQL读取Hive表并将其分配给 scala val val x = sqlContext.sql("select * from some_table") 然 ...

  2. Hive on Spark和Spark sql on Hive,你能分的清楚么

    摘要:结构上Hive On Spark和SparkSQL都是一个翻译层,把一个SQL翻译成分布式可执行的Spark程序. 本文分享自华为云社区<Hive on Spark和Spark sql o ...

  3. spark基础之Spark SQL和Hive的集成以及ThriftServer配置

    如果希望Maven编译Spark时支持Hive,需要给定-Phive -Phive-thriftserver.比如比如:mvn -Pyarn -Phadoop-2.6 -Dhadoop.version ...

  4. 使用Spark SQL读取Hive上的数据

    Spark SQL主要目的是使得用户可以在Spark上使用SQL,其数据源既可以是RDD,也可以是外部的数据源(比如Parquet.Hive.Json等).Spark SQL的其中一个分支就是Spar ...

  5. spark sql on hive初探

    前一段时间由于shark项目停止更新,sql on spark拆分为两个方向,一个是spark sql on hive,另一个是hive on spark.hive on spark达到可用状态估计还 ...

  6. Spark SQL 与 Hive 的第一场会师

    "你好,一杯热美式,加 2 份shot, 1 份焦糖,谢谢" L 跨进汇智国际中心大厦的 Starbucks, 拿着 iPhone 对着点餐机轻轻一扫,对黑带服务员小妹抛出一个笑脸 ...

  7. spark sql读写hive的过程

    Spark sql读写hive需要hive相关的配置,所以一般将hive-site.xml文件放到spark的conf目录下.代码调用都是简单的,关键是源码分析过程,spark是如何与hive交互的. ...

  8. spark sql and hive 3g数据测试

    1:上传文件到hdfs [jifeng@feng01 hadoop]$ hadoop fs -mkdir /user/jifeng/fire 15/03/05 13:29:28 WARN util.N ...

  9. Spark SQL 和 Hive UDF ExceptionInInitializerError getRemoteBlockReaderFromTcp BlockReaderFactory

    文章目录 1.背景 2. hive UDF函数 2. 注册到hive中 3. Spark SQL 4.运行报错 5. HDFS读取问题? 6. 牛 ???????? 7 . 解决后在谷歌搜索发现 8. ...

最新文章

  1. centos怎么切换python版本_centos6更换默认python版本为python3方法
  2. python改变字符串类型_python – Sklearn将字符串类标签更改为int
  3. 土方工程量计算表格excel_工程造价算量表+工程量软件,超多表格可套用,高清下载...
  4. Java企业面试算法新得体会之5字符串问题24问
  5. CTS(23)---Camera Media CTS GTS VTS 记录
  6. 高清电脑手机壁纸任你选,每天不重样!
  7. [HTML/HTML5]5 使用链接
  8. asp.net gridview 模板列 弹出窗口编辑_如何使用极速PDF编辑器的注释工具?
  9. 【转】jquery文件上传插件uploadify在.NET中session丢失的解决方案
  10. 数字后端基本概念介绍<Tap Cell>
  11. Codeforces Round #518 (Div. 2): E. Multihedgehog(模拟)
  12. CentOS 安装 PPTP ××× 客户端安装脚本
  13. 【MFC教程】MFC窗口创建
  14. ARINC429基础知识
  15. arcgis字段计算器python_ArcGIS字段计算器(Python篇)——字段查重等问题汇总
  16. ubuntu18.04安装微信——简单操作
  17. “真功夫”与“花拳绣腿”
  18. 达人评测 惠普暗影精灵8和惠普暗影精灵8plus的区别
  19. 正大国际期货:什么是黄金保证金交易?黄金保证金交易包含哪些要点?
  20. 英语发音规则---s发/s/的读音规则

热门文章

  1. 干货!639页《深度学习:Deep Learning》硬核课程PPT
  2. 【Python】Python实战从入门到精通之一 -- 教你深入理解Python中的变量和数据类型
  3. 网页版深度学习模型编辑器,搭建运行样样都行,还能3D可视化
  4. 【项目实践】:KNN实现手写数字识别(附Python详细代码及注释)
  5. 《Python编程从入门到实践》记录之input()函数
  6. 我们一起爬爬爬之HTTP原理
  7. syntaxnet python调用
  8. Linux 开机启动
  9. 线程安全和线程不安全的简述及辅助记忆
  10. Tomcate服务器的基本知识概括总结及安装目录概括