专栏首页大数据学习笔记Spark2.x学习笔记:15、Spark SQL的SQL

Spark2.x学习笔记:15、Spark SQL的SQL

15、 Spark SQL的SQL

15.1 Spark SQL所支持的SQL语法

select [distinct] [column names]|[wildcard]
from tableName
[join clause tableName on join condition]
[where condition]
[group by column name]
[having conditions]
[order by column names [asc|desc]]

如果只用join进行查询,则支持的语法为:

select statement
from statement
[join | inner join | left join | left semi join | left outer join | right join |right outer join | full join | full outer join]
on join condition

15.2 Spark SQL的SQL的框架

15.3 与Hive Metastore结合

(1)Spark要能找到HDFS和Hive的配置文件

  • 第1种方法:可以直接将core-site.xml、hdfs-site.xml和hive-site.xml复制到Spark安装目录下的conf目录中。该方法存在一个缺陷,如果HDFS或Hive的配置修改了,则需要手动修改Spark对应的配置文件。
  • 第2种方法:在Spark配置文件中指定Hadoop配置文件目录

(2)Spark SQL与Hive Metastore结合,直接使用spark.sql(“select … from table where …”)

15.4 实例演示

(1)spark-shell

[root@node1 ~]# spark-shell
17/10/24 10:15:21 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Spark context Web UI available at http://192.168.80.131:4040
Spark context available as 'sc' (master = local[*], app id = local-1508854525067).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.2.0
      /_/

Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_112)
Type in expressions to have them evaluated.
Type :help for more information.

scala> spark.sql("show databases").show
+------------+
|databaseName|
+------------+
|     default|
|        test|
+------------+


scala> spark.sql("show tables").show
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
| default|  copyemp|      false|
| default|     demo|      false|
| default|     dept|      false|
| default|     dual|      false|
| default|      emp|      false|
| default|   empbak|      false|
| default|employees|      false|
| default|     mytb|      false|
| default|    users|      false|
+--------+---------+-----------+


scala> spark.sql("select * from emp").show
+----+------+---------+----+----------+------+------+----+
| eid| ename|      job| mgr|  hiredate|   sal|  comm| did|
+----+------+---------+----+----------+------+------+----+
|7782| CLARK|  MANAGER|7839|1981-06-09|2450.0|   0.0|  10|
|7839|  KING|PRESIDENT|   0|1981-11-17|5000.0|   0.0|  10|
|7934|MILLER|    CLERK|7782|1982-01-23|1300.0|   0.0|  10|
|7369| SMITH|    CLERK|7902|1980-12-17| 800.0|   0.0|  20|
|7566| JONES|  MANAGER|7839|1981-04-02|2975.0|   0.0|  20|
|7902|  FORD|  ANALYST|7566|1981-12-03|3000.0|   0.0|  20|
|7499| ALLEN| SALESMAN|7698|1981-02-20|1600.0| 300.0|  30|
|7521|  WARD| SALESMAN|7698|1981-02-22|1250.0| 500.0|  30|
|7654|MARTIN| SALESMAN|7698|1981-09-28|1250.0|1400.0|  30|
|7698| BLAKE|  MANAGER|7839|1981-05-01|2850.0|   0.0|  30|
|7844|TURNER| SALESMAN|7698|1981-09-08|1500.0|   0.0|  30|
|7900| JAMES|    CLERK|7698|1981-12-03| 950.0|   0.0|  30|
|8888|HADRON|     null|null|2016-08-31|6666.0|  null|null|
+----+------+---------+----+----------+------+------+----+


scala> 

(2)spark-sql

[root@node1 ~]# spark-sql
17/10/24 10:17:21 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
17/10/24 10:17:32 WARN ObjectStore: Version information not found in metastore. hive.metastore.schema.verification is not enabled so recording the schema version 1.2.0
17/10/24 10:17:32 WARN ObjectStore: Failed to get database default, returning NoSuchObjectException
spark-sql> show databases;
default
test
Time taken: 3.93 seconds, Fetched 2 row(s)
spark-sql> show tables;
default copyemp false
default demo    false
default dept    false
default dual    false
default emp false
default empbak  false
default employees   false
default mytb    false
default users   false
Time taken: 0.145 seconds, Fetched 9 row(s)
spark-sql> select * from emp;
7782    CLARK   MANAGER 7839    1981-06-09  2450.0  0.0 10
7839    KING    PRESIDENT   0   1981-11-17  5000.0  0.0 10
7934    MILLER  CLERK   7782    1982-01-23  1300.0  0.0 10
7369    SMITH   CLERK   7902    1980-12-17  800.0   0.0 20
7566    JONES   MANAGER 7839    1981-04-02  2975.0  0.0 20
7902    FORD    ANALYST 7566    1981-12-03  3000.0  0.0 20
7499    ALLEN   SALESMAN    7698    1981-02-20  1600.0  300.0   30
7521    WARD    SALESMAN    7698    1981-02-22  1250.0  500.0   30
7654    MARTIN  SALESMAN    7698    1981-09-28  1250.0  1400.0  30
7698    BLAKE   MANAGER 7839    1981-05-01  2850.0  0.0 30
7844    TURNER  SALESMAN    7698    1981-09-08  1500.0  0.0 30
7900    JAMES   CLERK   7698    1981-12-03  950.0   0.0 30
8888    HADRON  NULL    NULL    2016-08-31  6666.0  NULL    NULL
Time taken: 3.266 seconds, Fetched 13 row(s)
spark-sql> 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hadoop基础教程-第9章 HA高可用(9.3 HDFS 高可用运行)(草稿)

    第9章 HA高可用 9.3 HDFS 高可用运行 9.3.1 HA节点规划 节点 IP Zookeeper NameNode JournalNode Da...

    程裕强
  • 中文分词算法:逆向最大匹配法

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    程裕强
  • Hadoop基础教程-第12章 Hive:进阶(12.4 Hive Metastore)(草稿)

    第12章 Hive:进阶 12.4 Hive Metastore 12.4.1 三种配置方式 Hive Metastore有三种配置方式,分别是: Embedd...

    程裕强
  • LeetCode刷题DAY 1:回文数判断

    相信很多小伙伴都感觉到行业内对模型算法工程师的要求越来越高,这种高要求不仅体现在对专业领域知识的理解应用,更体现在模型师同时要具备独立开发部署能力的用人诉求。S...

    三猫
  • CenterNet测试推理过程

    代码注释在:https://github.com/pprp/SimpleCVReproduction/tree/master/CenterNet

    BBuf
  • 剑指offer(07-09)题解

    思路解析 这一题与上述的那一题大同小异,只要注意一些小问题,显然该题的状态转换方程也和上题差不多,但是这题,有一个不同的地方就是,他不仅可以跳一步,两步,他还...

    萌萌哒的瓤瓤
  • WSO2 ESB(1)

    什么是WSO2 ESB? WSO2 ESB是一个轻量级的易于使用的企业服务资源总线。WSO2 ESB允许系统管理员和SOA架构师,消息路由,虚拟化,中介,转换,...

    cloudskyme
  • 【图像分类】 基于Pytorch的多类别图像分类实战

    目前常用的深度学习框架主要包括tensorflow、caffe、pytorch、mxnet等;

    用户1508658
  • 创业公司都在使用的3款Python库

      只需简单地修改Config文件,用户就可以按自己的意图来以静态文件方式部署Web应用,而不必依赖于Nginx、亚马逊S3等外部服务。Whitenoise能对...

    统计学家
  • 开源软件的商业模式演变分析(二)

    开源软件在几十年前刚起步发展时,最主要的理念是打破闭源软件公司的垄断,也就是Microsoft、Apple、IBM等这些闭源软件公司,期望让所有人都能无条件使用...

    用户5997198

扫码关注云+社区

领取腾讯云代金券