OneToOneDependency类型的操作

Spark的Transform算子对应依赖关系_spark

Spark的Transform算子对应依赖关系_spark_02

RangeDependency类型的操作

Spark的Transform算子对应依赖关系_spark_03

Spark的Transform算子对应依赖关系_数据_04

ManyToOneDependency类型的操作

Spark的Transform算子对应依赖关系_依赖关系_05

coalesce(shuffle=false) 、 特殊情况下的union() , 以及zipPartitions() 操作对应的数据依赖关系都是ManyToOneDependency, child RDD中的每个分区需要从parent RDD中获取所依赖的多个分区的全部数据。 由于ManyToOneDependency是窄依赖, 所以Spark将parent RDD和child RDD组合为一个stage, 该stage生成的task个数与最后的RDD的分区个数相等。

Spark的Transform算子对应依赖关系_数据_06

ManyToManyDependency类型的操作

Spark的Transform算子对应依赖关系_spark_07

Spark的Transform算子对应依赖关系_依赖关系_08

单一ShuffleDependency类型的操作

Spark的Transform算子对应依赖关系_依赖关系_09

Spark的Transform算子对应依赖关系_依赖关系_10

多ShuffleDependency类型的操作

Spark的Transform算子对应依赖关系_数据_11

Spark的Transform算子对应依赖关系_数据_12