Spark寬依賴與窄依賴的區別

2021-08-31 09:55:42 字數 445 閱讀 7842

窄依賴是指父rdd的每個分割槽只被子rdd的乙個分割槽所使用,子rdd分割槽通常對應常數個父rdd分割槽。這其中又分兩種情況:1個子rdd分割槽對應1個父rdd分割槽(如map、filter等運算元),1個子rdd分割槽對應n個父rdd分割槽(如co-paritioned(協同劃分)過的join)。

寬依賴是指父rdd的每個分割槽都可能被多個子rdd分割槽所使用,子rdd分割槽通常對應所有的父rdd分割槽。這其中又分兩種情況:1個父rdd對應所有子rdd分割槽(未經協同劃分的join)或者1個父rdd對應非全部的多個rdd分割槽(如groupbykey)。

窄依賴相對寬依賴有2點優勢:

(1) 寬依賴會產生shuffle,會跨網路拉取資料,窄依賴在乙個節點內就可以完成轉換。

(2) 當rdd需要時,當子rdd需要重算的時候會將所有父rdd的資料重算一遍,這樣出現多餘計算情況,而窄依賴時,子rdd需要重算時只需要重算對應的乙個父rdd即可。

Spark寬依賴與窄依賴

spark中rdd的高效與dag 有向無環圖 有很大的關係,在dag排程中需要對計算的過程劃分stage,劃分的依據就是rdd之間的依賴關係。rdd之間的依賴關係分為兩種,寬依賴 wide dependency shuffle dependency 和窄依賴 narrow dependency 窄依...

Spark寬依賴 窄依賴

在spark中,rdd 彈性分布式資料集 存在依賴關係,寬依賴和窄依賴。寬依賴和窄依賴的區別是rdd之間是否存在shuffle操作。窄依賴窄依賴指父rdd的每乙個分割槽最多被乙個子rdd的分割槽所用,即乙個父rdd對應乙個子rdd或多個父rdd對應乙個子rdd 寬依賴寬依賴指子rdd的每個分割槽都依...

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

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