RDD特性理解

1 篇文章 0 订阅
RDD特性及其实现特性的方法

1.数据来之后需要知道数据应该放在哪个分区,标记数据是哪个分区的 。

getpartitions()

2.之后需要对数据进行操作,(执行一些计算逻辑)。

compute()

3.在操作数据的时候需要对数据进行变换此时就需要shuffle 可能把多个分区变少的分区也有可能由少分区到多的

Prtitioner (相当于管理者)来管控这个事控制分区的数据流向。

4.而我们RDD是具有弹性的,新的RDD 损坏或出错了 可以由前一个RDD重新计算得到 故而需要记录它是谁的子类是从哪里来 记录RDD 之间的依赖关系。

getdependencies()

5.记录每个partition的优先位置(移动数据不如移动计算)

preferredLocation()

RDD 是弹性分布式数据集,是Spark中最基本的数据抽象(代码中是一个抽象类)

关于弹性的理解

1.存储的弹性:内存与磁盘的自动切换;shuffle过程是需要落盘的(自动切换)
2.容错的弹性:数据丢失可以自动恢复 基于其rdd的继承关系(记录了当前算子是由哪个算子计算得出)故而丢失的数据可以由上一个算子重新计算得到结果
3.计算的弹性: 计算出错可以重新计算也是基于rdd的继承关系()
4.分片的弹性:可以根据需要进行分片
所有RDD算子相关的操作都在excutor端执行,RDD算子之外的操作都在Driver端执行

RDD数创建的方式及其创建结果

RDD数据从集合中创建
分区数如下:
本地 默认值 总核数
集群 默认值 总核数 与 2的最大值

rdd数据从集合中创建
自设置分区
如何分的区 :大概把数据根据设置的分区数 尽可能均等的分在每个分区内(后往前)

rdd数据从文件中读取后创建
默认值 :默认取值为当前核数和2的最小值

RDD数据从文件中读取后创建
设置了分区
要计算步长跟据步长取相应结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值