在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
大数据之Spark框架中RDD和DataFrame的区别是什么?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对象的姓名、年龄等。

DataFrame也是弹性分布式数据集,但是本质上是一个分布式数据表,因此称为分布式表更准确。DataFrame每个元素不是泛型对象,而是Row对象。
DataFrame的缺点是Spark SQL DataFrame API 不支持编译时类型安全,因此,如果结构未知,则不能操作数据;同时,一旦将域对象转换为Data frame ,则域对象不能重构。
DataFrame=RDD-【泛型】+schema+方便的SQL操作+【catalyst】优化
DataFrame本质上是一个【分布式数据表】

DataFrame优于RDD,因为它提供了内存管理和优化的执行计划。总结为以下两点:
a.自定义内存管理:当数据以二进制格式存储在堆外内存时,会节省大量内存。除此之外,没有垃圾回收(GC)开销。还避免了昂贵的Java序列化。因为数据是以二进制格式存储的,并且内存的schema是已知的。
b.优化执行计划:这也称为查询优化器。可以为查询的执行创建一个优化的执行计划。优化执行计划完成后最终将在RDD上运行执行。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
什么是大数据即时分析?对金融服务的意义?
什么是大数据即时分析?对金融服务的意义?当今的金融服务公司正在寻求通过利用大数据分析来竞争,在数据战略方面获胜的结构:管理:数据迁移、数据选择、数据存储、数据测试;分析:数据结构、数据分析、机器学习、数据可视化;成果:成功指标、业务决策、货币化、市场领导力。
10584
2019-05-14 16:39:50
Hadoop基础知识快速入门
学习大数据的同学都知道,Hadoop是一个很重要的知识点。本文主要概括了Hadoop的定义、优势和作用,带大家了解Hadoop基础知识能够快速入门。
8405
2019-08-08 20:13:01
Hive数据仓库层级划分介绍
本文就Hive数据仓库层级划分进行详细介绍,全文大概分为数据仓库的四个操作和四逻辑架构层次两个部分。这些都是Hive数据仓库的基础知识,大家一定要掌握哦!
12260
2019-08-09 19:31:31
大数据从零开始入门自学书籍推荐
如今,有数据的地方就有大数据,大数据的火爆也造就了大数据人才在就业市场上的抢手。随着未来大数据的进一步发展,大数据的人才空缺会越来越大。正因如此,许多人都想在大数据时代的浪口,掌握这门安身立命的本领和技能。对于那些从零开始入门自学大数据的朋友,本文将推荐几本适合小白学习的书籍,希望对大家有所帮助。
7038
2019-12-27 17:08:42
大数据Apache Hadoop YARN 工作原理介绍
Apache Hadoop YARN是一种新的 Hadoop 资源管理器,通用资源管理系统可为上层应用提供统一的资源管理和调度,引入为集群在利用率、资源统一管理和数据共享等方面具有很强的优势。
6389
2020-04-27 14:27:28
