Spark RDD的寬窄依賴

2021-10-24 12:02:12 字數 584 閱讀 5873

rdd之間有一系列的依賴關係,依賴關係又分為窄依賴和寬依賴。

父rdd和子rdd partition之間的資料關係是一對一的。

或者父rdd乙個partition只對應乙個子rdd的partition情況下的父rdd和子rdd partition關係是多對一的。不會有shuffle的產生。

父rdd與子rdd partition之間的資料關係是一對多。會有shuffle的產生。

寬窄依賴圖理解

spark任務會根據rdd之間的依賴關係,形成乙個dag有向無環圖,dag會提交給dagscheduler,dagscheduler會把dag劃分相互依賴的多個stage,劃分stage的依據就是rdd之間的寬窄依賴。遇到寬依賴就劃分stage,每個stage包含乙個或多個task任務。然後將這些task以taskset的形式提交給taskscheduler執行。

stage是由一組並行的task組成。

切割規則:從後往前,遇到寬依賴就切割stage。

note:實際上rdd在沒有遇到action運算元之前,各個rdd中儲存的並不是資料,而是邏輯(函式)

pipeline管道計算模式,pipeline只是一種計算思想,模式。

Spark 寬窄依賴

面試時被問到spark rdd的寬窄依賴,雖然問題很簡單,但是答得很不好。還是應該整理一下描述,這樣面試才能答得更好。窄依賴就是指父rdd的每個分割槽只被乙個子rdd分割槽使用,子rdd分割槽通常只對應常數個父rdd分割槽,如下圖所示 其中每個小方塊代表乙個rdd partition 窄依賴有分為兩...

Spark中的寬窄依賴細述

spark中rdd的高效與dag圖有著莫大的關係,在dag排程中需要對計算過程劃分stage,而劃分依據就是rdd之間的依賴關係。針對不同的轉換函式,rdd之間的依賴關係分類窄依賴 narrow dependency 和寬依賴 wide dependency,也稱 shuffle dependenc...

Spark RDD依賴講解(寬依賴和窄依賴)

一 窄依賴 narrow dependencies 1 子rdd的每個分割槽依賴於常數個父分割槽 既與資料規模無關 2 輸入輸出一對一的運算元,且結果rdd的每個分割槽結構不變,主要是map flatmap 3 輸入輸出一對一,但結果rdd的結構發生了變化,如union coalesce 4 從輸入...