千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  IT问答库  >  大数据基础知识

大数据之Spark框架中RDD和DataFrame的区别

发布:大数据 2022-02-24 17:50

大数据之Spark框架中RDD和DataFrame的区别

推荐答案

  大数据覆盖的技术点有很多,其中spark框架就是其中一种,本期小编为大家介绍的大数据培训教程就是关于Spark框架中RDD和DataFrame的区别是什么?RDD(提供了一种高度受限的共享内存模型;DataFrame是一种分布式的数据集,并且以列的方式组合的。在spark中RDD、DataFrame是最常用的数据类型,在使用的过程中你知道两者的区别和各自的优势吗?关于如何具体的应用今天就好好的分析一下。

  大数据之Spark框架中RDD和DataFrame的区别:

  一、RDD、DataFrame分别是什么?

  1、什么是RDD?

  RDD(Resilient Distributed Datasets)提供了一种高度受限的共享内存模型。即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。RDD仍然足以表示很多类型的计算,包括MapReduce和专用的迭代编程模型(如Pregel)等。

  2、什么是DataFrame?

  DataFrame是一种分布式的数据集,并且以列的方式组合的。类似于关系型数据库中的表。可以说是一个具有良好优化技术的关系表。DataFrame背后的思想是允许处理大量结构化数据。提供了一些抽象的操作,如select、filter、aggregation、plot。DataFrame包含带schema的行。schema是数据结构的说明。相当于具有schema的RDD。

  二、RDD、DataFrame有什么特性?

  在Apache Spark 里面DF 优于RDD,但也包含了RDD的特性。RDD和DataFrame的共同特征是不可性、内存运行、弹性、分布式计算能力。

  它允许用户将结构强加到分布式数据集合上。因此提供了更高层次的抽象。我们可以从不同的数据源构建DataFrame。例如结构化数据文件、Hive中的表、外部数据库或现有的RDDs。DataFrame的应用程序编程接口(api)可以在各种语言中使用,包括Python、Scala、Java和R。

  1、RDD五大特性:

  1.(必须的)可分区的: 每一个分区对应就是一个Task线程。

  2.(必须的)计算函数(对每个分区进行计算操作)。

  3.(必须的)存在依赖关系。

  4.(可选的)对于key-value数据存在分区计算函数。

  5.(可选的)移动数据不如移动计算(将计算程序运行在离数据越近越好)。

  2、DataFrame特性:

  1.支持从KB到PB级的数据量

  2.支持多种数据格式和多种存储系统

  3.通过Catalyst优化器进行先进的优化生成代码

  4.通过Spark无缝集成主流大数据工具与基础设施

  5.API支持Python、Java、Scala和R语言

  三、RDD与DataFrame的区别

  RDD是弹性分布式数据集,数据集的概念比较强一点。容器可以装任意类型的可序列化元素(支持泛型)RDD的缺点是无从知道每个元素的【内部字段】信息。意思是下图不知道Person对象的姓名、年龄等。

1

  DataFrame也是弹性分布式数据集,但是本质上是一个分布式数据表,因此称为分布式表更准确。DataFrame每个元素不是泛型对象,而是Row对象。

  DataFrame的缺点是Spark SQL DataFrame API 不支持编译时类型安全,因此,如果结构未知,则不能操作数据;同时,一旦将域对象转换为Data frame ,则域对象不能重构。

  DataFrame=RDD-【泛型】+schema+方便的SQL操作+【catalyst】优化

  DataFrame本质上是一个【分布式数据表】

2

  DataFrame优于RDD,因为它提供了内存管理和优化的执行计划。总结为以下两点:

  a.自定义内存管理:当数据以二进制格式存储在堆外内存时,会节省大量内存。除此之外,没有垃圾回收(GC)开销。还避免了昂贵的Java序列化。因为数据是以二进制格式存储的,并且内存的schema是已知的。

  b.优化执行计划:这也称为查询优化器。可以为查询的执行创建一个优化的执行计划。优化执行计划完成后最终将在RDD上运行执行。

  如果您想了解更多关于千锋教育或者大数据培训教程,可以咨询我们的客服小姐姐,他们会为您做详细的解答。

更多问题在线答疑

专业导师线上坐镇
解答个性化学习难题

点击提交问题
问答排行榜

01 网络安全发展前景怎么样

网络安全培训 网络安全培训班 网络安全培训机构
6020 人关注

02 大数据培训机构哪些比较好

大数据培训 大数据培训班 大数据培训机构
5389 人关注

03 大数据培训分享:大数据分析的数据类型都有哪些

大数据培训 大数据培训班 大数据培训机构
5062 人关注

04 网络安全培训分享:加密软件该如何进行安全防护?

网络安全培训 网络安全培训班 网络安全培训机构
4733 人关注

05 大数据之Spark框架中RDD和DataFrame的区别

大数据培训 大数据培训班 大数据培训机构
4561 人关注

06 如何进入大数据行业?相关学习路线是什么

大数据培训 大数据培训班 大数据培训机构
4238 人关注

相关问题

学大数据需要具备什么基础和知识点?

大数据时代,不仅带来了先进的技术,也带来了很多求职机会,很多...

大数据培训之数据分析思维

想要学会数据分析,那么就还要学会数据分析思维,数据思维具有框...

大数据都在哪些应用领域比较常见?

快速发展的时代,大数据围绕我们的日常生活方方面面,单单在疫情...

大数据培训分享:大数据分析的数据类型都有哪些

互联网时代,数据共享成了非常普遍的,各大企业对于同行业的数据...

大数据之Spark框架中RDD和DataFrame的区别

大数据覆盖的技术点有很多,其中spark框架就是其中一种,本期小...

大数据开发工程师是做什么的?

随着大数据在生活中应用变得广泛,大数据开发工程师也逐渐的出现...

IT趣味问答挑战赛

测一测
你知道多少IT梗