为了账号安全,请及时绑定邮箱和手机立即绑定

Spark中对RDD的理解

标签:
Spark

Spark中对RDD的理解

简介

what the is RDD?

RDD(Resilient Distributed Datasets)
(Resilient 弹性),(Distributed 分布式),(Datasets 数据集)
RDD是一个弹性分布式数据集,是分布式内存的一个抽象概念,提供了一种高度受限共享内存模型。

RDD的特性

1.分片的数据集(list of partiton)

假设要读取HDFS上的数据,每个block块就是一个分片(partiton),所有的分片(partiton)组合在一起就是一个集合(list) 一个RDD。

2.在分片中使用函数计算(function for computing each partiton)

现在假设我们有map的函数,和一个RDD,这个RDD中有3个partiton,那么这个map函数会在每个partiton之上的进行计算。
计算完毕后,又组成一个新的RDD,以迭代的方式进行计算。


webp

RDD计算顺序

3.数据集依赖RDD

从2.在分片中使用函数计算可以看出。
首先RDD1初始化的时候是在HDFS系统中读出来的数据,然后通过map函数在partiton进行计算又组成了一个新的RDD2,这样我们可以得出结论RDD都是有依赖关系的。依赖的好处就是有容错,假设RDD2中的partiton数据丢失了,可以重新在RDD1中计算过来。

4.KV的RDD

如果RDD中的元素是二元组类型的话,那么这个RDD就叫KV格式的RDD

5.task计算数据本地化

task理解为是一个线程,在任务调度的时候RDD会提供一个接口给我们调用,知道partiton所在的位置之后就分发task让其执行任务。

Driver的作用

1.负责任务的分发(task的分发)
2.将每一个task的计算结果拉回到Driver端。

spark的代码执行流程

1.从文件系统中读取数据(Flie System)加载到RDD。
2.使用transformations算子 对RDD的计算(不会立即执行)。
3.触发Action类算子执行(立即执行)。



作者:陈_志鹏
链接:https://www.jianshu.com/p/82d8df62616a


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
50
获赞与收藏
175

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消