寬窄依賴:父RDD的分區只對應下面子RDD的一個分區,為窄依賴。其余為寬依賴
維度? | ?窄依賴? | ?寬依賴? |
---|---|---|
數據傳輸 | 無shuffle,本地處理14 | 需shuffle,跨節點傳輸14 |
并行度 | 高(允許流水線并行)57 | 低(需等待父任務完成)28 |
容錯恢復成本 | 僅需重算單個父分區57 | 需重算多個父分區8 |
典型操作 | map 、filter 、union 4 | groupByKey 、join 4 |
其實就是父RDD的一個分區會被傳到幾個子RDD分區的區別。如果被傳到一個子RDD分區,就可以不需要移動數據(移動計算);如果被傳到多個子RDD分區,就需要進行數據的傳輸。
如何計算job, stage, task可以參考這篇博客:[Spark] 手撕Job、Stage、Task劃分機制_spark根據什么分task-CSDN博客