RDD依赖关系
RDD和它依赖的父RDD(s)的关系有两种不同的类型,即窄依赖(narrow dependency)和宽依赖(wide dependency)。
一般有shuffle过程即宽依赖,无shuffle过程就窄依赖但是窄依赖也有可能产生数据在网络传输。
2.1、窄依赖
窄依赖指的是每一个父RDD的Partition最多被子RDD的一个Partition使用任务可以在本地执行,不需要shuffle。
常见算子:map flatmap filter union sample
2.2、宽依赖
宽依赖指的是多个子RDD的Partition会依赖同一个父RDD的Partition;除非父RDD是hash-partitioned, 需要shuffle。
常见算子:groupByKey reduceByKey sortByKey join cartesian