各個列分別為:
年,月,日,當天溫度
2012,01,01,5
2012,01,02,15
2012,01,03,25
2012,01,04,18
2012,01,05,10
2012,02,01,15
2012,02,02,16
2012,02,03,22
2012,02,04,11
2012,02,05,16
2012,03,01,25
2012,03,02,17
2012,03,03,24
2012,03,04,13
2012,03,05,17
需求:輸出每個』年-月』(year-month)的溫度,而且值按公升序排序。
輸出結果為:
第一列:year-month
第二列:已排序的溫度。
mapreduce正規化:
map(keya,valuea) -> list(kb,vb)
reduce(kb,list(vb)) -->list(kc,vc)
使用mr框架對規約器值排序:
使用鍵值轉換設計模式:
構造乙個組合中間鍵(k,valuea),其中valuea是次鍵(secondary key)。在這裡,k稱為自然鍵(natural key)。要在規約器鍵中注入乙個值(即 valuea),只需要建立乙個組合鍵,在本例子中valuea 就是溫度資料 (temperature) 。
Hadoop Streaming二次排序
由於hadoop機器記憶體不足,所以需要把資料mapred進來跑。這樣,就需要,同乙個key下的輸入資料是有序的,即 對於keya的資料,要求data1先來,之後data2再來 所以需要對data進行二次排序。d stream.num.map.output.key.fields 2 這個,可以設定在...
MapReduce二次排序
預設情況下,map輸出的結果會對key進行預設的排序,但個別需求要求對key排序的同時還需要對value進行排序 這時候就要用到二次排序了。本章以hadoop權威指南中計算每年最大氣溫值為例,原始資料雜亂無章 2008 33 2008 23 2008 43 2008 24 2008 25 2008 ...
MR 二次排序
二次排序 eg 對左側序列進行排序,需要先對字母排序,然後在對數字進行排序.得到右側的序列.a 2 a 2 c 4 a 4 b 3 b 1 c 1 b 3 a 4 c 1 b 1 c 4public class sortmapreduce extends configured implements ...