购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.8 扩展阅读

除了支持基本的RDD 数据结构,Spark还支持在RDD基础上扩展的、面向结构化数据(主要是表格数据)的高级数据结构 [65] ,即DataSet和DataFrame。使用DataSet、DataFrame开发的应用可以更好地执行各种SQL操作,并利用Spark SQL引擎中的优化技术来对执行计划进行优化。读者可以参考 Spark The Definitive Guide [66] 了解DataSet、DataFrame数据结构的使用方法。本书主要讨论基于RDD数据结构的Spark应用,因为这些应用更为基础,也更有助于在分布式层面理解数据和计算任务的划分,以及生成规则。读者在理解这些应用的执行原理后,可以进一步参考 Spark SQL 论文和《Spark SQL内核剖析》 [67] 学习Spark SQL引擎中的优化技术。

另外需要注意的是,基于RDD应用的逻辑处理流程和物理执行计划与Spark SQL应用的Logical plan和Physical plan 有所不同。基于RDD应用的逻辑处理流程指的是一系列RDD操作形成的输入/输出、中间数据及数据之间的依赖关系;物理执行计划指的是具体的执行阶段(stage)和执行任务(task)。Spark SQL应用中的Logical plan指的是将SQL脚本转化后的逻辑算子树,包含各种SQL操作,如Project()、filter()、join()等;而Physical plan指的是对逻辑算子树进行转化后形成的物理算子树,树中的节点可以转化为RDD及其操作,也可以直接生成实现Project()、filter()、join()等操作的Java代码。更多的介绍可以参考文献[67]。 wKZ/jgg3YQwPRt2/jZ/+0x+QSvJAsA2J4PG+rbyghL48NOyrSsVyr1jEpYyj/tWN

点击中间区域
呼出菜单
上一章
目录
下一章
×