窄依赖和宽依赖

窄依赖:

        指父RDD的每一个分区最多被一个子RDD的分区所用,表现为一个父RDD的分区对应于一个子RDD的分区,和两个父RDD的分区对应于一个子RDD 的分区。图中,map/filter和union属于第一类,对输入进行协同划分(co-partitioned)的join属于第二类。

宽依赖:

       指子RDD的分区依赖于父RDD的所有分区,这是因为shuffle类操作,如图中的groupByKey和未经协同划分的join。 

划分流程:

     以action划分job,以shuffle划分stage,在每个stage中每个分区对应一个task,执行计算任务。

 

窄依赖和宽依赖