首页 理论教育 DataFrame编程模型优化指南

DataFrame编程模型优化指南

时间:2023-07-02 理论教育 版权反馈
【摘要】:DataFrame这个名字是取自R、Python等语言中的概念,DataFrame在数据统计、分析的语言里扮演了举足轻重的角色。Spark引入DataFrame实现了在大数据平台同样的统计分析功能。在前面1.1.2一节中,我们已经了解了DataFrame与RDD之间的差异。为了更好地理解DataFrame究竟是什么,通过图2-1再把DataFrame与RDD进行对比。于是基于DataFrame就可以进行更加高效的性能优化。DataFrame编程模型的功能特性如下:●从KB到PB级的数据量支持。

DataFrame编程模型优化指南

DataFrame这个名字是取自R、Python等语言中的概念,DataFrame在数据统计、分析的语言里扮演了举足轻重的角色。Spark引入DataFrame实现了在大数据平台同样的统计分析功能。随着不断地优化,DataFrame可以由更广阔的数据源来创建,例如:结构化的数据文件、Hive表、外部数据库或者现有的RDD。

在前面1.1.2一节中,我们已经了解了DataFrame与RDD之间的差异。为了更好地理解DataFrame究竟是什么,通过图2-1再把DataFrame与RDD进行对比。

978-7-111-59197-9-Chapter02-1.jpg

图2-1 DataFrame和RDD进行对比

从图2-1中可以看出:

1)RDD的每一项数据都是一个整体,这也就导致了Spark框架无法洞悉数据记录内部的细节,限制了Spark SQL的性能提升。

2)DataFrame的数据特点如图2-1右边所示,其包含了每个数据记录的Metadata信息,可以在优化时基于列内部进行优化(例如一共30列,如果只需要其中10列,那么就可以只获取其中10列的信息,而不需要把所有30列的数据全部取出)。(www.xing528.com)

DataFrame更像是RDD的加强版,带有更多的细节信息,与普通RDD不同的就是Dat-aFrame是有Schema(标记)的,也就是说,DataFrame是带有每一列信息的。可以把Dat-aFrame理解为一个分布式的二维表,每一列都带有名称和类型,这就意味着Spark SQL可以基于每一列数据的元数据进行更加细粒度的分析,而不是如同以往分析RDD的时候那种粗粒度的分析。于是基于DataFrame就可以进行更加高效的性能优化。

DataFrame编程模型的功能特性如下:

●从KB到PB级的数据量支持。

●多种数据格式和多种存储系统支持。

●通过Spark SQL的Catalyst优化器进行优化,生成代码。

●为Python、Java、Scala和R语言(SparkR)提供API。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈