Spark筆記004-reduceByKey和groupBykey

突然聽同事提起棍丐,就隨便寫一下的掘譬。

reduceByKey==groupByKey().map()

做一個word count小例子寥掐,

val counts = pairs.groupByKey(count=>(count._1,count._2.sum))

groupByKey的過程 MapPartitionsRDD=>ShuffledRDD=>MapPartitionsRDD=>MapPartitionsRDD
也就是說胀屿,它是原封不動的糊昙,把ShuffleMapTask的輸出费奸,來去到ResultTask的內存中弥激,所以導致所有數(shù)據都進行了網絡傳輸
而如果是reduceByKey,看下shuffleMapTask的write的實現(xiàn)愿阐,判斷了是否有mapSideCombine微服,如果有,就先本地聚合缨历,再寫磁盤以蕴,再傳輸。

 override def write(records: Iterator[Product2[K, V]]): Unit = {
    sorter = if (dep.mapSideCombine) {
      require(dep.aggregator.isDefined, "Map-side combine without Aggregator specified!")
      new ExternalSorter[K, V, C](
        context, dep.aggregator, Some(dep.partitioner), dep.keyOrdering, dep.serializer)
    } else {
   ......
  }

這到底是在干什么

談之前要有個共識辛孵,分布式系統(tǒng)丛肮,網絡傳輸是占時間比重高也非常影響效率的部分。
說些比較飄浮的內容魄缚,這其實是mapreduce比較經典的map端combine宝与,也就是說因為是分布式系統(tǒng)啊,首先把數(shù)據分散到各個節(jié)點并行計算冶匹,算完了再把數(shù)據傳到其他節(jié)點去做最終結果計算习劫。那么在第一次計算之前,如果能先做一些對最終結果計算有幫助的計算嚼隘,再去傳輸榜聂,就能節(jié)省一點網絡傳輸時間。
說些更飄浮的內容啊嗓蘑,mr這種計算是為了算結果须肆,也就是把數(shù)據的抽象程度變高了匿乃,那么,能越早的接近最終結果豌汇,越能節(jié)約時間幢炸。

適用場景

如果有hadoop基礎就知道,map端combine和reduce端combine邏輯一致才能得到最終結果拒贱。
如果不是,那就是如果需要對單key的所有value放在一起才能計算的邏輯不合適做這種優(yōu)化逻澳。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市斜做,隨后出現(xiàn)的幾起案子苞氮,更是在濱河造成了極大的恐慌瓤逼,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件霸旗,死亡現(xiàn)場離奇詭異,居然都是意外死亡诱告,警方通過查閱死者的電腦和手機撵枢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來精居,“玉大人诲侮,你說我怎么就攤上這事∠潴。” “怎么了?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵刮便,是天一觀的道長空猜。 經常有香客問我,道長恨旱,這世上最難降的妖魔是什么辈毯? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮搜贤,結果婚禮上谆沃,老公的妹妹穿的比我還像新娘。我一直安慰自己仪芒,他們只是感情好唁影,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布耕陷。 她就那樣靜靜地躺著,像睡著了一般据沈。 火紅的嫁衣襯著肌膚如雪哟沫。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天锌介,我揣著相機與錄音嗜诀,去河邊找鬼。 笑死孔祸,一個胖子當著我的面吹牛隆敢,可吹牛的內容都是我干的。 我是一名探鬼主播崔慧,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼拂蝎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了尊浪?” 一聲冷哼從身側響起匣屡,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拇涤,沒想到半個月后捣作,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡鹅士,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年券躁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掉盅。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡也拜,死狀恐怖,靈堂內的尸體忽然破棺而出趾痘,到底是詐尸還是另有隱情慢哈,我是刑警寧澤,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布永票,位于F島的核電站卵贱,受9級特大地震影響,放射性物質發(fā)生泄漏侣集。R本人自食惡果不足惜键俱,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望编振。 院中可真熱鬧,春花似錦踪央、人聲如沸臀玄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至旗唁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間检疫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工夺溢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烛谊,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓状勤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親持搜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內容