RDD依赖
Rdd之间存在血缘关系(Lineage),因此RDD之间存在联系,其中分为宽依赖和窄依赖。
(1)宽依赖
宽依赖指多个RDD的partition依赖同一个父RDD的partition
(2)窄依赖
窄依赖指RDD的partition都只依赖于一个父RDD不同的partition
所有依赖都需实现trait Dependency[T]
窄依赖代码实现:
abstract class NarrowDependency[T](_rdd: RDD[T]) extends Dependency[T] {
// 返回子 RDD 的 partitionId 依赖的所有的 parent RDD 的 Partition(s)
def getParents(partitionId: Int): Seq[Int]
override def rdd: RDD[T] = _rdd
}
(1)