2011-12-27 59 views
4

可能重複:
MultipleOutputFormat in hadoop寫在多個文件輸出在Hadoop中

我想了根據使用Hadoop的地圖,減少月寫的文件。如果數據是從一月份開始,那麼數據應該在jan-file中寫入,同樣每個月應該有一個單獨的文件。

如何建立在Hadoop中mapredude這樣的文件。我正在嘗試遞歸map-reduce,但沒有得到如何實現它?

PLS建議我一些解決方案。

謝謝。

回答

5

使用MultipleOutputFormat類,輸出文件名可以從鑰匙,並從減速機減速機的輸出值來推斷。必須在用戶定義的OutputFormat類中實現MultipleOutputFormat#generateFileNameForKeyValue

static class MyMultipleOutputFormat extends MultipleOutputFormat<Text, Text> { 
    protected String generateFileNameForKeyValue(Text key, Text value, String name) { 
     String keyString = key.toString(); 
     String valueString = value.toString(); 
     #return a combination of keyString and valueString 
    } 
} 
+0

不適用於最新版本的Hadoop(新的mapreduce庫而不是舊的mapred)。這就是爲什麼我低估了。 – Tony 2013-12-16 03:09:13

相關問題