Spark----Spark SQL概述
Spark SQL概述
什么是Spark SQL
Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。
我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!
1.易整合
2.统一的数据访问方式
3.兼容Hive
4.标准的数据连接
SparkSQL可以看做是一个转换层,向下对接各种不同的结构化数据源,向上提供不同的数据访问方式。
SparkSQL 的版本迭代
SparkSQL 版本升级对应的新特性汇总
1、SparkSQL 的前身是 Shark。由于 Shark 自身的不完善,2014 年 6 月 1 日 Reynold Xin 宣布: 停止对 Shark 的开发。SparkSQL 抛弃原有 Shark 的代码,汲取了 Shark 的一些优点,如内存 列存储(In-Memory Columnar Storage)、 Hive 兼容性等,重新开发 SparkSQL。
2、Spark-1.1:2014 年 9 月 11 日,发布 Spark1.1.0。Spark 从 1.0 开始引入 SparkSQL(Shark 不再支持升级与维护) 。Spark1.1.0 变化较大是 SparkSQL 和 MLlib
3、Spark-1.3:增加 DataFrame 新 API
4、Spark-1.4:增加窗口分析函数
5、Spark 1.5:钨丝计划。Hive 中有 UDF 与 UDAF,Spark 中对 UDF 支持较早 UDAF:User Defined Aggregate Function 用户自定义聚合函数,直到 Spark 1.5.x 才引入的最 新特性 关于“钨丝计划”: https://blog.csdn.net/nysyxxg/article/details/56962247?locationNum=6&fps=1
6、spark-1.6:执行的 sql 中可以增加"--"注释,Spark-1.5/1.6 的新特性,引入 DataSet 的概念
7、Spark-2.x:SparkSQL+DataFrame+DataSet(正式版本),Structured Streaming(DataSet),引入 SparkSession 统一了 RDD,DataFrame,DataSet 的编程入口