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

2021-09-29 07:31:19 字數 380 閱讀 9077

一、窄依賴(narrow dependencies)

1、子rdd的每個分割槽依賴於常數個父分割槽(既與資料規模無關)

2、輸入輸出一對一的運算元,且結果rdd的每個分割槽結構不變,主要是map、flatmap

3、輸入輸出一對一,但結果rdd的結構發生了變化,如union、coalesce

4、從輸入中選擇部分元素的運算元,如filter、distinct、subtract、sample

二、寬依賴(wide dependencies)

1、子rdd的每個分割槽依賴於所有父rdd分割槽

2、對單個rdd基於key進行重組和reduce,如groupbykey、reducebykey

3、對兩個rdd基於key進行join和重組,如join

寬依賴和窄依賴 Spark 寬依賴和窄依賴

1.前言 上一節spark dag概述 spark中rdd的高效與dag圖有著莫大的關係,在dag排程中需要對計算過程劃分stage,暴力的理解就是stage的劃分是按照有沒有涉及到shuffle來劃分的,沒涉及的shuffle的都劃分在乙個stage裡面,這種劃分依據就是rdd之間的依賴關係。針對...

寬依賴與窄依賴

1 寬依賴 英文全名 shuffledependency。本質如其名,就是shuffle。每乙個父rdd的partition中的資料,都可能會傳輸一部分,到下乙個rdd的partition中,此時會出現,父rdd和子rdd的partition之間,具有交錯複雜的關係。那麼這兩個rdd之間就是寬依賴,...

寬依賴和窄依賴

寬依賴和窄依賴如下圖所示 相比於寬依賴,窄依賴對優化很有利 主要基於以下兩點 寬依賴往往對應著shuffle操作,需要在執行過程中將同乙個父rdd的分割槽傳入到不同的子rdd分割槽中,中間可能涉及多個節點之間的資料傳輸 而窄依賴的每個父rdd的分割槽只會傳入到乙個子rdd分割槽中,通常可以在乙個節點...