Spark中的寬窄依賴細述

2021-09-24 11:07:12 字數 522 閱讀 5324

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

寬依賴和窄依賴如下圖所示:

相比於寬依賴,窄依賴對優化很有利 ,主要基於以下兩點:

寬依賴往往對應著shuffle操作,需要在執行過程中將同乙個父rdd的分割槽傳入到不同的子rdd分割槽中,中間可能涉及多個節點之間的資料傳輸;而窄依賴的每個父rdd的分割槽只會傳入到乙個子rdd分割槽中,通常可以在乙個節點內完成轉換。

當rdd分割槽丟失時(某個節點故障),spark會對資料進行重算。

Spark 寬窄依賴

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

Spark RDD的寬窄依賴

rdd之間有一系列的依賴關係,依賴關係又分為窄依賴和寬依賴。父rdd和子rdd partition之間的資料關係是一對一的。或者父rdd乙個partition只對應乙個子rdd的partition情況下的父rdd和子rdd partition關係是多對一的。不會有shuffle的產生。父rdd與子r...

初始spark 三 之寬窄依賴以及stage的劃分

一 寬窄依賴的概念 提起spark中涉及到的rdd,那麼我們也會很容易的想到的問題是,rdd的一系列操作轉化操作,轉化操作其實就是將乙個rdd轉化為另乙個rdd,那麼在產生新的rdd和舊的rdd的關係就屬於依賴關係,而rdd之間的依賴關係可以分為寬依賴和窄依賴兩種依賴關係。窄依賴 具體的含義是指父r...