当前位置:首页 > 科技数码

dataframe Spark用DataFrame取代RDD以提高性能

在很多人眼里,RDD是老派,而Spark 2.1用Dataframe会更快。然而,许多人没有意识到数据帧是基于RDD的。我们可以试着打开引擎盖,看看里面是如何工作的。

在Spark中,DataFrame是由命名列组织的分布式数据集,相当于关系数据库中的一个表和R/Python中的数据帧(但优化更多)。RDD是一个分布式数据集,数据分散在分布式集群中的每台机器上。

下图显示了它们之间的结构比较。

左边的RDD·[人]将Person作为类型参数,但是Spark框架本身并不理解Person类的内部结构。但是,右侧的数据框提供了详细的结构信息,因此Spark SQL可以清楚地知道数据集中包含哪些列,以及每列的名称和类型。数据帧有更多的数据结构信息(模式)。

数据框架比RDD更有效,因为它指定了一个特定的结构来约束数据。因为数据帧具有定义明确的结构,所以Spark可以在作业运行中应用许多性能增强方法。如果你能用RDD完美地写程序,你也可以通过RDD达到同样的表现。数据框架是基于RDD的抽象。如果你花时间设计算法和写代码,你也可以使用RDD获得类似于数据帧的速度,甚至更快。

Spark SQL中查询计划的各个阶段。圆形矩形代表催化剂树。

数据框的底层结构是RDD。当您使用数据框时,Spark将优化您的代码。如果您编写的代码足够高效,那么您肯定可以获得与RDD相同的性能。然而,要达到与数据帧相同的效率需要付出更多的努力。这就是为什么数据帧更好。你甚至可以使用火花SQL。DataFrame用于在代表每行一条记录的行中存储数据。因此,用户可以在其上运行火花SQL查询。

火花SQL的接口,以及与火花的交互。

Spark将整个查询封装到一个代码块中(他们称之为整个阶段代码生成),这导致了更好的缓存局部性,因为它避免了虚拟调用。

数据帧的优势

与RDD相比,Spark极大地优化了数据帧的执行时间和内存使用。

1.催化剂优化引擎将执行时间减少了75%。

2.项目钨堆外内存管理减少了75%的内存使用,并且没有垃圾收集器。

使用本机Spark Python和Scala应用编程接口编写的聚合的性能与数据框架应用编程接口的性能相比。

两阶段管道的性能,分为单独的火花SQL查询和火花作业(上图)和集成的数据帧作业(下图)。

我们可以看到用python和scala执行RDD明显比DataFrame慢,而scala在执行RDD的时候比Python快。数据框的两种语言没有区别。这是因为Python是一种解释语言,而scala是一种编译语言。为了更好地执行,Catalyst将Scala和python的DataFrame操作编译成物理计划,并生成JVM (Java虚拟机)字节码。所以python不解释过程,导致两种语言性能相同。同时,两种语言的性能比普通Python RDD好4倍,比Scala RDD好2倍。Catalyst优化的代码比解释性代码快得多。

Spark的一贯目标是提供一个单一的平台,用户可以从中获得更好的分布式算法来匹配任何类型的数据处理任务。其中性能一直是主要目标之一,钨的目标是让Spark应用达到硬件性能的极限。

数据帧在时间和空方面明显优于RDD。一般来说,数据帧应该是首选。

结论

Spark SQL是Apache Spark中的一个新模块,它提供了丰富的关系处理集成。Spark SQL通过使用声明性数据框架API来扩展Spark,以允许关系处理,并提供自动优化等优势,以便用户可以编写混合关系和复杂分析的管道。

它支持大规模定制的各种功能数据分析,包括半结构化数据、查询联邦和机器学习数据类型。为了启用这些功能,Spark SQL基于一个名为Catalyst的可扩展优化器,它可以轻松地添加优化规则,并将数据源和数据类型嵌入Scala编程语言。

用户反馈和基准测试表明,火花SQL使编写混合关系和数据流水线程序变得更加简单和高效,同时,与以前的火花上SQL引擎相比,它提供了显著的加速。

12

译者简介

约瑟夫孙。

经常吃加州牛肉面的野码子。

擅长安装卸载virtualbox、MySQL、jupyter笔记本、intellij、eclipse、qvodplayer等软件。

精通拼写C、C++、C#、Java、Python、SQL、Go等单词。

有足够的Windows、Linux、OS X、Android、iOS开关机的实际经验。

对大数据行业有一些不成熟的看法。

翻译:孙若瑟

1.《dataframe Spark用DataFrame取代RDD以提高性能》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《dataframe Spark用DataFrame取代RDD以提高性能》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/819468.html

上一篇

广西发现大型天坑群 广西发现天坑群,堪称“世界级”,那坡天坑群原始景观保存完好

下一篇

下沙奥特莱斯 UA安德玛浙江首家折扣店在下沙奥特莱斯开业

利刃出鞘过审 美队主演新片《利刃出鞘》过审 影迷:他跟"007"能擦出哪些火花?

利刃出鞘过审 美队主演新片《利刃出鞘》过审 影迷:他跟"007"能擦出哪些火花?

来了!由“007”丹尼尔·克雷格和“美国队长”克里斯·埃文斯主演,由“星球大战”系列导演莱恩·约翰逊执导的悬疑电影《剑出鞘》正式宣布,中国大陆即将上映。在阿加莎克里斯蒂式经典侦探小说的基础上,电影故事具有颠覆性和创新性,并获得了2019年的惊喜。今天,影片发布了《梦...

电机测试机 电机性能综合测试台

电机测试机 电机性能综合测试台

余姚MCS-1电机性能综合试验台 一.概述 “YUYAMCS-1电机性能综合试验台”是一套交流电机相应的控制、运行、机电特性测试和教学实验,支持先进的检测和控制手段,定量分析上述各种运行模式,采集电机运行的各种参数。学生可以通过嵌入式触摸屏电脑实现对采集数据的显示、...

顺丰与菜鸟 顺丰关停菜鸟数据接口 菜鸟:感觉很突然

  • 顺丰与菜鸟 顺丰关停菜鸟数据接口 菜鸟:感觉很突然
  • 顺丰与菜鸟 顺丰关停菜鸟数据接口 菜鸟:感觉很突然
  • 顺丰与菜鸟 顺丰关停菜鸟数据接口 菜鸟:感觉很突然

三大电商 三大电商阿里、京东、唯品会核心数据对比

  • 三大电商 三大电商阿里、京东、唯品会核心数据对比
  • 三大电商 三大电商阿里、京东、唯品会核心数据对比
  • 三大电商 三大电商阿里、京东、唯品会核心数据对比

小食品的品牌 谁才是休闲零食第一品牌,三大数据告诉你真相

  • 小食品的品牌 谁才是休闲零食第一品牌,三大数据告诉你真相
  • 小食品的品牌 谁才是休闲零食第一品牌,三大数据告诉你真相
  • 小食品的品牌 谁才是休闲零食第一品牌,三大数据告诉你真相
303 安罗替尼奏响中国强音:ALTER 0303研究系列后续数据分析在2017年WCLC中展示

303 安罗替尼奏响中国强音:ALTER 0303研究系列后续数据分析在2017年WCLC中展示

安罗替尼是中国郑达天庆药业集团有限公司自主研发的1.1类新药,近两年来,该药的相关研究已在世界肺癌会议(WCLC)、中国临床肿瘤学会议(CSCO)、美国临床肿瘤学会年会(ASCO)等领域的顶级学术研究活动中进行了展示,得到了国际同行的高度认可。在2017年的WCLC...

360财报 360发布2019半年财报:净利润大涨,政企业务数据抢眼

360财报 360发布2019半年财报:净利润大涨,政企业务数据抢眼

8月26日晚,360安防科技有限公司发布2019年半年度报告。报告期内,360家上市公司股东应占净利润为40.52亿元,比上年同期15.37亿元同比增长163.66%;扣除后的上市公司股东应占净利润为16.09亿元,同比增长15.76%,同比增长13.9亿元;基本每...

家庭电子账本 记账老人小账本:织绘民生大数据 咱老百姓的钱都花在哪儿了?

  • 家庭电子账本 记账老人小账本:织绘民生大数据 咱老百姓的钱都花在哪儿了?
  • 家庭电子账本 记账老人小账本:织绘民生大数据 咱老百姓的钱都花在哪儿了?
  • 家庭电子账本 记账老人小账本:织绘民生大数据 咱老百姓的钱都花在哪儿了?