文章目录
零、本讲学习目标
- 理解RDD的宽依赖与窄依赖
- 理解Spark根据DAG将计算划分多个阶段
一、RDD的依赖
- 在Spark中,对RDD的每一次转化操作都会生成一个新的RDD,由于RDD的
懒加载特性
,新的RDD会依赖原有RDD,因此RDD之间存在类似流水线的前后依赖关系。这种依赖关系分为两种:窄依赖和宽依赖。
(一)窄依赖
- 窄依赖是指父RDD的一个分区最多被子RDD的一个分区所用。也就是说,父RDD的分区与子RDD的分区的对应关系为一对一或多对一。例如,map()、filter()、union()、join()等操作都会产生窄依赖。
1、map()与filter()算子
- 一对一的依赖
2、union()算子
- 多对一的依赖