多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > Spark RDD之Dependency

Spark RDD之Dependency

來源:程序員人生   發布時間:2017-03-16 08:46:45 閱讀次數:4881次

概要

上1篇我們介紹了代表RDD組成的(Dependency、Partition、Partitioner)之1的Partition,這篇接著介紹Dependency。Partition記錄的是數據split的邏輯,Dependency記錄的是transformation操作進程中Partition的演變,即這個Partition從哪來到哪去的進程。

Dependency定義


我的另外一篇博客Spark RDD中介紹了RDD的組成,及Dependency的分類和緣由,這里不再累述,先看下Dependency的定義:

Dependency是抽象類,有1個抽象方法rdd,Dependency其實就是父RDD的包裝,其主要子類實現有兩大類:

  • NarrowDependency(窄依賴)

    窄依賴仍然是抽象類,其實現了rdd方法,就返回傳入的父rdd,并在定義中增加抽象方法getParents,根據子RDD的PartitionId返回對應的父RDD的PartitionId,接下來查看窄依賴的具體實現:
    1. OneToOneDependency

      OneToOneDependency表示子RDD和父RDD的Partition之間的關系是1對1的,即子RDD的PartitionId和父RDD的PartitionId1樣,如第1幅圖中,Narrow Dependency下面的map和filter方法所示的關系。
    2. RangeDependency
      RangeDependency表示子RDD和父RDD的Partition之間的關系是1個區間內的1對1對應關系,第1幅圖中所示Narrow Dependency下面的union就是RangeDependency
    3. PruneDependency
      子RDD的Partition來自父RDD的多個Partition,filterByRange方法時會使用,不做詳細討論
  • ShuffleDependency(寬依賴)
    ShuffleDependency的定義相對復雜1些,由于shuffle設計到網絡傳輸,所以要有序列化serializer,為了減少網絡傳輸,可以加map端聚合,通過mapSideCombine和aggregator控制,還有key排序相干的keyOrdering,和重輸出的數據如何分區的partitioner,其他信息包括k,v和combiner的class信息和shuffleId。shuffle是個相對復雜且開消大的進程,Partition之間的關系在shuffle處戛但是止,因此shuffle是劃分stage的根據。

Dependency分為兩大類,寬依賴和窄依賴,窄依賴有兩個主要實現。

舉個例子

以Wordcount為例

val wordcount = sc.parallelize(List("a c", "a b"))
wordcount.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).collect()

通過web UI查看DAG,以下:

可以看出,其根據shuffle的位置劃分為兩個stage,stage0和stage1
調用toDebugString查看各RDD之間關系

最后,總結出Wordcount中RDD及其對應的Dependency以下,其中方形代表RDD,圓角矩形代表Partition(3個圓角矩形是為了作圖方便,不代表其具體有3個Partition),文本框內第1行動代碼片斷,第2行是對應的RDD,第3行動RDD的Dependency類型

總結

Dependency是RDD的重要組成,分為寬依賴和窄依賴兩大類,實質就是其父RDD的包裝,由Dependency組成的關系構成了lineage的物理結構,也是DAG的物理結構,寬依賴(即shuffle操作)也是stage劃分的根據,窄依賴可以履行流水線(pipeline)操作,效力高。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美高清videos性极品 | 亚洲日比视频 | 91久久精品一区二区三区 | 亚洲欧美自拍偷拍 | 欧美综合视频在线观看 | 欧美色视频免费高清播放 | 欧美xxxxhdvideos| 亚洲精品国自产拍在线观看 | 日本中文字幕在线播放 | 色avav| www亚洲免费| 另类亚洲孕妇分娩网址 | 国产日韩亚洲 | 毛片一级在线观看 | 精品h视频| 国产精品自拍在线 | 欧美一区二区三区在线观看不卡 | 男人天堂久久 | 91精品久久一区二区三区 | 一级做a爱久久久久久久 | 久插视频 | 久草福利在线播放 | 欧美黑人乱大交 | 日本高清免费中文字幕不卡 | 中文字幕一级 | 中文字幕在线观看一区二区三区 | 中文字幕一区二区在线播放 | jizz在线观看视频 | 亚洲噜噜噜噜噜影院在线播放 | 男人边吃奶边摸下面好爽视频 | 亚洲一本| 性欧美网站 | 免费视频爱爱 | 亚洲免费中文字幕 | 日本xxwwwxxxx18| 卡通动漫亚洲 | 亚洲国产精品yw在线观看 | 免费18岁禁看 | 欧美日韩在线亚洲国产人 | 中文字幕天天躁夜夜狠狠综合 | 久久成人国产精品二三区 |