RDD的五大特点

RDD(Resilient Distributed Dataset)是一个弹性的分布式的数据集,是spark的基本抽象,RDD是不可变的,并且它由多个partition构成(可能分布在多台机器上,可以存memory上,也可以存disk里等等),可以进行并行操作

  • 分布式:由多个partition构成,可能分布在多台机器上,可以存memory上,也可以存disk里等等
  • 弹性:分布式计算可容错
    • 分片的弹性:根据需要重新分片 
    • 内存的弹性:内存与磁盘的自动切换
    • 计算的弹性:计算出错重试机制
    • 容错的弹性:数据丢失可以自动恢复
  • 不可变:一旦创建就不可改变。例如,RDD A经过转换操作变成RDD B,这两个RDD具有血缘关系,但是是两个不同的RDD。

RDD的5大特点

1. A list of partitions

RDD由一到多个partition构成,有多少个partition就对应有多少个task。

2. A function for computing each split

对RDD做计算,相当于对RDD的每个split或partition做计算。

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)

如果RDD里面存的数据是key-value形式,则可以传递一个自定义的Partitioner进行重新分区,比如可以按key的hash值分区。

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

每个split一般有多个副本,计算时优先使用本地的副本进行计算,减少数据的IO和网络传输,提高性能。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值