我們都知道依賴分為兩種:寬依賴和窄依賴。
如圖所示乙個方框表示乙個rdd,實心藍底的框表示partition,從圖中可以看出,寬依賴與窄依賴的區分主要是父partition與子partition的對應關係(注:前乙個為後乙個partition的父partition)。
窄依賴(圖左):父partition對子partition是一對一或多對一。
寬依賴(圖右):父partition對子partition是一對多。
窄依賴一般是對rdd進行map,filter,union等transformations。寬依賴一般是對rdd進行groupbykey操作,說白就是對rdd進行重分割槽,而join即可能是寬依賴也可能是窄依賴,其區別是,當要對rdd進行join操作時,如果rdd進行過重分割槽則為窄依賴,否則為寬依賴。
寬依賴和窄依賴 Spark 寬依賴和窄依賴
1.前言 上一節spark dag概述 spark中rdd的高效與dag圖有著莫大的關係,在dag排程中需要對計算過程劃分stage,暴力的理解就是stage的劃分是按照有沒有涉及到shuffle來劃分的,沒涉及的shuffle的都劃分在乙個stage裡面,這種劃分依據就是rdd之間的依賴關係。針對...
Spark 寬依賴和窄依賴
spark中rdd的高效與dag圖有著莫大的關係,在dag排程中需要對計算過程劃分stage,暴力的理解就是stage的劃分是按照有沒有涉及到shuffle來劃分的,沒涉及的shuffle的都劃分在乙個stage裡面,這種劃分依據就是rdd之間的依賴關係。針對不同的轉換函式,rdd之間的依賴關係分類...
Spark 寬依賴和窄依賴
站在父rdd角度 窄依賴 一對一 站在父rdd角度 寬依賴 一對多 寬依賴和窄依賴 寬依賴 父rdd的分割槽被子rdd的多個分割槽使用 例如 groupbykey reducebykey sortbykey等操作會產生寬依賴,會產生shuffle 窄依賴 父rdd的每個分割槽都只被子rdd的乙個分割...