关于Spark的知识点
1.宽依赖与窄依赖
针对不同的转换函数,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