欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

RDD介绍

程序员文章站 2022-04-10 22:43:44
(本人初次接触spark可能有些地方理解的不够到位,希望各位读者多多指正,对于不恰当的地方也会进行改进) 1、RDD定义:是弹性分布式数据集,是分布到各个节点的数据集合,具有自动容错性、位置感知调度和可伸缩性等。 2、RDD的特性: 2.1 分区(partition) 分区是RDD的基本组成单位(s ......

(本人初次接触spark可能有些地方理解的不够到位,希望各位读者多多指正,对于不恰当的地方也会进行改进)

1、RDD定义:是弹性分布式数据集,是分布到各个节点的数据集合,具有自动容错性、位置感知调度和可伸缩性等。

2、RDD的特性:

2.1 分区(partition)

分区是RDD的基本组成单位(spark并行处理的基本单元),属于RDD的子集。每个分区的计算都是独立执行的,并且分布到Slave节点上去计算。每个节点上可能会有多个分区,每个分区有对应的Task线程。

2.2 依赖

由于RDD之间的转换操作可以从已有RDD创建出新的RDD,一次新旧RDD之间必定会存在着某种联系,这种关系就被称为依赖。

依赖的分类:

窄依赖:父RDD的每个分区最多被子RDD的一个分区所依赖(一对一的关系);

宽依赖:父RDD的每个分区可被子RDD的多个分区所依赖(一对多的关系)。

窄依赖和宽依赖的比较:

(1)窄依赖:子RDD中的某个分区出错,可以方便的计算出其父RDD所对应的分区,然后进行重新计算生成子RDD对应的分区;

(2)子RDD出错可能导致父RDD的多个分区进行重新计算。

RDD介绍

 

union操作是将两个RDD中的元素进行合并,将结果封装成新的RDD,类似与两个集合的合并运算。 join针对Key-Value对形式的两个RDD进行连接操作,连接的依据是Key值,其功能与关系型数据库中 表的内连接操作相同。

 

3、RDD的创建:

RDD的创建有三种方式:基于集合进行创建、基于外部存储创建、根据已有RDD进行创建(RDD的创建操作)。

基于集合创建提供了parallelize和makeRDD两个操作。对于基于外部存储创建,通常是从HDFS中获取数据, 常用的操作就是textFile。

4、RDD的操作:

RDD的操作大致上可以分为两类:转换操作(Transformation)和执行操(Action)作。

转换操作就是根据已有RDD生产新的RDD,且具有惰性策略(只有执行了执行操作才会被提交到各个节点去计算)。执行操作就是向驱动程序返回结果或者是将结果写入外部存储系统。

RDD的创建和转换操作:

RDD介绍

RDD介绍

5、持久化操作

持久化操作是为了避免RDD被重新计算,能够提高计算速度。

操作:persist(持久化到磁盘或内存)、cache(持久化到内存)、checkpiont(持久化到磁盘)。

RDD介绍