如何理解RDD,以及RDD的五大特性和五大特点。

RDD:英文全称Resilient Distributed Dataset,叫做弹性分布式数据集,代表一个不可变、可分区、里面的元素可并行计算的分布式的抽象的数据集合。

  • Resilient弹性:RDD的数据可以存储在内存或者磁盘当中,RDD的数据可以分区

  • Distributed分布式:RDD的数据可以分布式存储,可以进行并行计算

  • Dataset数据集:一个用于存放数据的集合

一, RDD的5大特性

源码如下

1. 第一个:A list of partitions :

(必须的)RDD是由一系列分区组成的

2、 第二个:A function for computing each split :

(必须的)对RDD做计算,相当于对RDD的每个分区做计算


3、第三个:A list of dependencies on other RDDs:

(必须的)RDD之间存在着依赖关系(宽依赖和窄依赖)


4、 第四个:Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned):

(可选的)对于KV类型的RDD,默认操作的是k,当然我们可以进行自定义分区方案


5、Optionally, a list of preferred locations to compute each split on (e.g. block locations for an HDFS file):

(可选的)移动数据不如移动计算,让计算程序离数据越近越好

二,RDD特点

特点1:分区-RDD逻辑上是分区的,每个分区的数据是抽象存在的,计算的时候会通过一个compute函数得到每个分区的数据。

特点2:只读-RDD是只读的,要想改变RDD中的数据,只能在现有的RDD基础上创建新的RDD。

特点3:依赖-RDDs之间维护着这种血缘关系,也称之为依赖

特点4:缓存-如果在应用程序中多次使用同一个RDD,可以将该RDD缓存起来,该RDD只有在第一次计算的时候会根据血缘关系得到分区的数据

特点5:checkpoint-随着迭代的进行,RDDs之间的血缘关系会越来越长,一旦在后续迭代过程中出错,则需要通过非常长的血缘关系去重建,势必影响性能。为此,RDD支持checkpoint将数据保存到持久化的存储中,这样就可以切断之前的血缘关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值