【Spark开发必备技能】6-1-RDD/Datase/DataFrame-三者定义和关系

本文介绍了Spark中的三种基本数据类型:RDD、Dataset和DataFrame。详细讲解了它们的定义、区别以及如何选择使用。RDD是弹性分布式数据集,具有转换和操作功能;Dataset在RDD基础上增加了schema信息,提供了类SQL的查询能力;DataFrame是无类型的Dataset,适用于以列名处理数据。此外,还讨论了三者的入口类和转化方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、RDD是什么

2、Dataset是什么

3、DataFrame是什么

4、使用时候怎么选

5、三者的入口类

6、三者的转化


Spark共提供3种基本的数据类型,分别是Spark Core引擎对应的RDD,以及Spark SQL引擎对应的DataFrame 和 DataSet。

那么三种数据类型的定义是什么,他们有什么区别呢?

1、RDD是什么

  • 分片的集合

        RDD(resilient distributed dataset)即弹性分布式数据集,它由多个partition(分区)组成的集合。每个partition运行在分布式集群的不同节点上。

        默认情况下,每个HDFS的分区文件(默认分区文件块大小是64M)都会创建一个RDD分区。   

        注:一个文件被切成N份,那么每一份就代表一个分区, 每个分区能被并行的处理。  

 

  • 函数作用在每个分区

    RDD共包含两种计算方式,一种是transformations转换(如:map, filter, groupBy, join等),一个种是actions操作(如:count, collect, save等),每种计算方式对应的具体函数,详见《RDD常用操作

    函数作用在每个分区上并行执行。通过转换或者操作后,生成新的RDD,旧的RDD内容不变。

        注意:Transformations转换是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations转换时只会记录需要这样的转换,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算。写代码的时候,一定要特别注意,基本是新手必踩的坑!!!

     

  • RDD之间有一系列依赖关系

    由于RDD每次转换计算都会生成新的RDD,所以RDD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值