依赖关系可以方便任务调度
窄依赖:对RDD执行操作后,父RDD和子RDD对应关系的一对一或多对一(多对一只是一个逻辑上的说法,两个合并为一个既没有数据的传输也没有发生shuffle) 那么就是窄依赖。
宽依赖:对RDD执行操作后,父RDD和子RDD对应关系是一对多,那么就是宽依赖。一般来说会发生shuffle(数据传输)。也就是说一般来说宽依赖与shuffle对应。
宽窄依赖的作用:
下图是一个Application
执行Application之前会从最后的RDD(G)回溯
两个RDD之间是宽依赖时会切分出一个Stage。Stage。前面讲过两个RDD之间是宽依赖会发生shuffle,因此Stage与Stage之间会发生Shuffle。