Spark SQL 的几个里程碑

栏目: 编程工具 · 发布时间: 6年前

本文讲讲Spark SQL的几个里程碑的更新升级。

1. spark 1.0.0诞生了Spark SQL

官方版本是 spark 1.0.0 引入的 Spark SQL 模块。当时这个模块的核心实际上就是一种新类型的 RDD ,叫做 SchemaRDD SchemaRDD 就是类型为 ROW RDD, 但同时又包含了一个描述每一列数据类型的 schema 信息。 SchemRDD 也可类似于传统数据库的一张表。 SchemaRDD 可以从已有的 RDD 创建,可以是 Parquet 文件, json 数据集或则 HiveQL 生成。该版本引入是在 2014 年五月 30 日。

Spark SQL 的几个里程碑

2. Spark 1.2.0诞生了ML机器学习库

Ml机器学习库是基于SchemaRDD的,后来的版本是基于Dataframe的,可以直接与Spark SQL进行交互。

Spark SQL 的几个里程碑

3. Spark 1.3.0 诞生了Dataframe

Spark 1.3 的时候做了一个重大变革。就是将 SchemaRDD 重命名为了 DataFrame ,主要原因是 DataFrame 不再直接继承自 RDD ,而是自己维护和实现了自己的功能函数。但是 DataFrame 可以通过调用 .rdd 转化为 RDD

Spark SQL 的几个里程碑

4. spark 1.6.0诞生了Dataset和SparkSession

Spark 1.6 的时候也是有了重大调整,增加了 Dataset 的概念 , 类似 RDD ,在享受 Spark SQL 执行引擎性能优化的同时允许用户使用自定义对象和 lambda 函数。

在引入 Dataset 的同时,也引入了 SparkSession ,也即是会话管理功能,允许不同用户可以在使用不同配置和临时表的情况下共享统一的集群。

Spark SQL 的几个里程碑

5. Spark 2.0.0诞生了Strcutured Streaming

Spark 2.0 开始, Dataset API Dataframe API 统一了。 Scala 版本, DataFrame 被类型定义成 Dataset[Row] java 版本必须是要 Dataset[Row] 代替 Dataframe

SparkSession已经完全替换掉了旧的SQLContext和HiveContext。SQLContext和HiveContext为了保持兼容还在被保留。

上线了Structured Streaming。这个是Spark 流处理发展的主要方向,底层是基于Spark SQL 和 Catalyst 优化器,让用户像使用静态Dataset开发离线处理任务一样 使用流Dataset 开发流处理业务,这个就是依赖于Catalyst 优化器自动增量的查询计划。

从自Spark 2.x依赖的更新状态来看,Spark SQL及Catalyst 优化器已经成为Spark框架努力的方向,主要体现在:

1). 逐步废弃掉基于RDD的mllib机器学习库,着重发展基于DataFrame的ml库。目前是,基于RDD的机器学习库处于保留状态,后期会废弃。

2). Spark2.4.0 未对Spark Streaming(RDD-based)做进一步更新。Structured Streaming(dataframe-based)被大力优化更新,也有取代Spark Streaming之势头。

所以,spark 使用及爱好者要大力掌握好Spark SQL和Structured Streaming。

那么是不是就不要深入学习Spark Core和Spark Streaming了呢?

答案是否定的!

Spark Core是Spark SQL的基石,所以很有必要掌握好Spark Core。

Spark SQL和Structured Streaming处理的是结构化数据,非结构化数据,还是需要Spark Core和Spark Streaming进行解析处理。

Structured Streaming 的功能还不够完善,限制颇多,比如多流join之后不能聚合等,所以Spark Streaming的给用户以灵活处理的接口还是有用武之地的。

推荐阅读:

大数据啊大数据!

如何成为一个优秀的工程师?

解惑:这个SPARK任务是数据倾斜了吗?

Spark SQL 的几个里程碑

感谢点赞,转发!


以上所述就是小编给大家介绍的《Spark SQL 的几个里程碑》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解计算机系统(原书第3版)

深入理解计算机系统(原书第3版)

Randal E.Bryant、David O'Hallaron / 龚奕利、贺莲 / 机械工业出版社 / 2016-11 / 139.00元

和第2版相比,本版内容上*大的变化是,从以IA32和x86-64为基础转变为完全以x86-64为基础。主要更新如下: 基于x86-64,大量地重写代码,首次介绍对处理浮点数据的程序的机器级支持。 处理器体系结构修改为支持64位字和操作的设计。 引入更多的功能单元和更复杂的控制逻辑,使基于程序数据流表示的程序性能模型预测更加可靠。 扩充关于用GOT和PLT创建与位置无关代码的......一起来看看 《深入理解计算机系统(原书第3版)》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具