几张图 彻底 搞懂 窄依赖 和 宽依赖

几张图搞懂 RDD(Resilient Distributed Datasets) 窄依赖 和 宽依赖:

Dependency.scala 源码里类图关系如下:

几张图 彻底 搞懂 窄依赖 和 宽依赖_第1张图片

OneToOneDependency[T] 和 RangeDependency[T] 对应的RDD 依赖关系如下:

 

几张图 彻底 搞懂 窄依赖 和 宽依赖_第2张图片

其中RangeDependency[T] 只是在 UnionRDD里被使用

《Spark设计与实现》里列举了1->1 N->1 N->N 的债依赖,跟代码对不上了,代码里也没有“each partition of the parent RDD is used by at most one partition of the child RDD”注释。《Spark设计与实现》里截图如下:

几张图 彻底 搞懂 窄依赖 和 宽依赖_第3张图片

结论:Spark 的窄依赖其实都是1->1的依赖关系,其它的都是宽依赖。

你可能感兴趣的:(Spark)