关于Spark的知识点

1.宽依赖与窄依赖

关于Spark的知识点

针对不同的转换函数,RDD之间的依赖关系分为窄依赖(narrow dependency)和宽依赖(wide dependency,也成shuffle dependency)。

窄依赖:

窄依赖是指1个父RDD分区对应1个子RDD的分区,换句话说,一个父RDD的分区对应于一个子RDD的分区,或者多个父RDD的分区对应于一个子RDD的分区。所以窄依赖又可以分为两种情况:

# 1个子RDD的分区对应于1个父RDD的分区 比如 map、filter、union等算子

#1个子RDD的分区对应与N个父RDD的分区,比如co-partioned join

宽依赖:

宽依赖是指1个父RDD分区对应多个子RDD分区,宽依赖分两种情况

#1个父RDD对应非全部多个子RDD分区,比如groupBykey、reduceBykey、sortBykey

#1个父RDD对应所有子RDD分区,比如未经协同划分的join