天天看點

RDD中的依賴關系

1.有shuffle

2.父RDD的一個分區會被子RDD的多個分區所依賴(父一對多)

RDD中的依賴關系

1.沒有shuffle

2.父RDD的一個分區隻會被子RDD的1個分區所依賴(一對一)

RDD中的依賴關系
RDD中的依賴關系

窄依賴:Spark可以對窄依賴進行優化:合并操作,形成pipeline(管道),同一個管道中的各個操作可以由同一個線程執行完,

且如果有一個分區資料丢失,隻需要從父RDD的對應個分區重新計算即可,不需要重新計算整個任務,提高容錯。

寬依賴:Spark可以根據寬依賴進行state階段劃分,同一個stage階段中的都是窄依賴,可以對該階段内的窄依賴優化

總結:

窄依賴: 并行化+容錯

寬依賴: 進行階段劃分(shuffle後的階段需要等待shuffle前的階段計算完才能執行)