在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
大数据spark框架常用数据类型RDD与DataFrame的区别,在spark中,RDD、DataFrame是最常用的数据类型,在Apache Spark 里面DF 优于RDD但也包含了RDD的特性,在使用的过程中分别介绍下两者的区别和各自的优势。
1、RDD是什么?
RDD(Resilient Distributed Datasets)提供了一种高度受限的共享内存模型。即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。RDD仍然足以表示很多类型的计算,包括MapReduce和专用的迭代编程模型(如Pregel)等。
RDD五大特点:(必须的)可分区的: 每一个分区对应就是一个Task线程;(必须的)计算函数(对每个分区进行计算操作);(必须的)存在依赖关系;(可选的)对于key-value数据存在分区计算函数;(可选的)移动数据不如移动计算(将计算程序运行在离数据越近越好)。
2、DataFrame是什么?
DataFrame是一种分布式的数据集,并且以列的方式组合的。类似于关系型数据库中的表。可以说是一个具有良好优化技术的关系表。DataFrame背后的思想是允许处理大量结构化数据。提供了一些抽象的操作,如select、filter、aggregation、plot。DataFrame包含带schema的行。schema是数据结构的说明。相当于具有schema的RDD。
DataFrame特性:支持从KB到PB级的数据量;支持多种数据格式和多种存储系统;通过Catalyst优化器进行先进的优化生成代码;通过Spark无缝集成主流大数据工具与基础设施;API支持Python、Java、Scala和R语言。
3、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上运行执行。
4、RDD与DataFrame个字有什么特性?
在Apache Spark 里面DF 优于RDD,但也包含了RDD的特性。
RDD和DataFrame的共同特征是不可性、内存运行、弹性、分布式计算能力。它允许用户将结构强加到分布式数据集合上。因此提供了更高层次的抽象。
从不同的数据源构建DataFrame。例如结构化数据文件、Hive中的表、外部数据库或现有的RDDs。DataFrame的应用程序编程接口(api)可以在各种语言中使用,包括Python、Scala、Java和R。
DataFrame API能够提高spark的性能和扩展性,避免了构造每行在dataset中的对象造成GC的代价。不同于RDD API能构建关系型查询计划更加有有利于熟悉执行计划的开发人员,同理不一定适用于所有人。
拿高薪入行大数据,选择《狂野大数据》课程,抓住大数据时代的“薪”机遇!!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
大数据时代带给我们的重大变革
无论是大数据、人工智能还是区块链都预示着科技的力量会将我们的日常生活带来巨大的变革。就目前而言,大数据已经在很多领域得到了实际的应用。也为我们的生活消费带来的巨大的变革。到2020年,世界上每个人每秒将创造7 MB的数据。下面试10个关于大数据未来预测的问题,告诉你大数据时代带给我们的重大变革。
10272
2019-08-09 18:04:05
2019年大数据在各行业的应用 深度解析
如今,我们都生活在一个数字化的世界里,大数据的应用也变得越来越广泛,它深度改变着我们的生产生活方式。本文小编就来深度解析一下,2019年大数据在各行业的应用。这些行业都从大数据中获取了当下真正有价值的信息,从而极大地提高了生产效率。
8377
2019-07-22 18:00:56
如何搭建hadoop平台?详细步骤讲解
如何搭建hadoop平台?本文将详细讲解以下步骤:虚拟机及系统安装、在虚拟机中配置JAVA环境、修改hosts、修改hostname vim 、配置ssh、压缩包解压、修改hadoop配置文件、修改HBase配置、修改HBase配置、修改hive配置、修改sqoop配置、修改zookeeper配置等等,手把手指导大家搭建hadoop平台。
9553
2019-08-08 15:46:19
大数据有哪些工作岗位?都需要掌握哪些技能?
随着大数据时代的来临,大数据的应用已经深入我们生活的方方面面。现在,各行各业对大数据人才的需求都是空前巨大的。那么,大数据有哪些工作岗位?都需要掌握哪些技能呢?目前,大数据工程师工作领域大致可分为五类:离线相关工作岗位、Storm实时计算工作岗位、Spark内存计算工作岗位、Flink 实时计算工作岗位和机器学习相关岗位。下面我们来看看从事以上岗位要学习掌握的技能。
7968
2020-03-12 12:42:17
学习大数据前应该了解什么?
大数据学习不能停留在理论的层面上,大数据方向切入应是全方位的,基础语言的学习只是很小的一个方面,编程落实到最后到编程思想。学习前一定要对大数据有一个整体的认识。
4202
2021-01-06 10:19:34