目录
一:何为宽,何为窄
以子Rdd对父Rdd的依赖关系为纬度,1对1为窄,反之则宽!
二:宽窄之程序运行效率比较
例子1:
窄依赖在自己的节点中,逐个元素地执行map、然后filter操作,父RDD节点的计算不用等待其它父节点的计算结果。
而宽依赖则需要首先计算好所有父分区数据,然后在节点之间进行Shuffle,这与MapReduce类似。
与窄依赖相比,多了节点间的数据传输
多了等待所有父节点的数据计算
例子2:当子RDD 需要重算时,宽依赖 会重算所有父RDD分区的数据,这样会出现多余的重算,窄依赖只需计算对应的一个父RDD的数据即可
结论:窄依赖性能更高
三:具体比较如图(细化到 task,executor)