继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Spark中对RDD的理解

三国纷争
关注TA
已关注
手记 288
粉丝 50
获赞 175

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


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP