窄依赖 narrow dependency
map,filter,union ,
join(co-partitioned)制定了父RDD中的分片具体交给哪个唯一的子RDD
并行的,RDD分片是独立的。
只依赖相同ID的分片
range分片
one to dependency
range dependency
内部可以previously computed partition
可以将计算合并,可以极大的提升效率,编写的时候可能是多个函数,执行的时候合并成一个函数,极大的减少了零碎内存或磁盘资源。
宽依赖
groupByKey,join with inputs not co-partitioned
多个子RDD的分片会依赖同一个父RDD分片
或者说同一个父RDD的分片都有多个子RDD的分片使用。
会产生shuffle, 在产生shuffle之前会产生新的stage(stage在获取外部数据和shuffle前产生)
shuffle dependency
【hash shuffle,sort shuffle】
过多的shuffle会影响性能,shuffle调优会有很多经验,待总结