一、RDD 依赖
以RDD分区的角度来看,根据子RDD依赖父RDD的分区的不同,将这种关系划分为两种:窄依赖和宽依赖。
窄依赖(narrow dependency)
说明:父RDD与子RDD是窄依赖时,父RDD的每个分区只被一个子RDD分区使用一次
窄依赖分为两种:
- 一种是一对一的依赖,即 OneToOneDependency
- 还有一个是范围的依赖 RangeDependency ,它仅仅被 org.apache.spark.rdd.UnionRDD 使⽤。 UnionRDD 是 把多个RDD合成⼀个RDD,这些RDD是被拼接而成,每个父RDD的 Partition 的相对顺序不会变,只不过每个父 RDD在 UnionRDD 中的 Partition 的起始位置不同
算子:map、flatMap、mapPartition、filter,join等
宽依赖(wide dependency)
指的是多个子RDD的partition会依赖同一个父RDD的Partition
总结: