教育行业A股IPO第一股(股票代码 003032)

全国咨询/投诉热线:400-618-4000

Spark中为什么要区分宽窄依赖?

更新时间:2023年05月12日17时55分 来源:传智教育 浏览次数:

好口碑IT培训

窄依赖:Spark可以对窄依赖进行优化:合并操作,形成pipeline(管道),同一个管道中的各个操作可以由同一个线程执行完,且如果有一个分区数据丢失,只需要从父RDD的对应个分区重新计算即可,不需要重新计算整个任务,提高容错。

宽依赖:Spark可以根据宽依赖进行state阶段划分,同一个stage阶段中的都是窄依赖,可以对该阶段内的窄依赖优化

什么是宽依赖什么是窄依赖

宽依赖有shuffle,子RDD的一个分区会依赖于父RDD的多个分区--错误,父RDD的一个分区会被子RDD的多个分区所依赖--正确。

窄依赖:没有shuffle,子RDD的一个分区只会依赖于父RDD的1个分区--错误,父RDD的一个分区只会被子RDD的1个分区所依赖--正确。

宽窄依赖

总结:

窄依赖: 并行化+容错

宽依赖: 进行阶段划分(shuffle后的阶段需要等待shuffle前的阶段计算完才能执行)。

0 分享到:
和我们在线交谈!