2012-10-21 41 views
-2
public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, Reporter reporter) throws IOException { 
       String line = value.toString(); 
      StringTokenizer tokenizer = new StringTokenizer(line); 
      while (tokenizer.hasMoreTokens()) { 
       word.set(tokenizer.nextToken()); 
       output.collect(word, one); 
      } 
      } 
     } 

我想了解map-reduce中的這個map函數的基本程序,輸入paramsters是什麼?我找不到地圖的定義。地圖減少java程序澄清

如果任何人能告訴我這是什麼功能做這將是偉大

+0

建議購買一本書或通過一些條款,如果在Hadoop中真正感興趣的。這是我所看到的基本問題之一,並沒有從提問者那裏付出太多努力。 –

回答

1

我假設這一個地圖使用具有的TextInputFormat減少工作。我還假設「one」是某種全球範圍的IntWritable,代表第一。

在這種情況下,map函數被調用文件中的每一行。關鍵是表示文件中行開始偏移量的數字。該值是該行的文本值。

地圖功能這裏分割使用的StringTokenizer上空白的每一行,並且發射每個字和作​​爲其輸出的數目之一。

比方說,你的輸入文件是這樣的:

Lorem存有悲坐阿梅德
consectetur adipisicing ELIT
SED做eiusmod tempor incididunt

映射器將發出以下鍵和值:
的Lorem,1個
ipsum的,1
悲,1
坐,1
阿梅德,1個
consectetur,1
adipisicing,1
ELIT,1
的sed,1
做,1
eiusmod,1
tempor,1
incididunt,1

這可能是字數統計圖減少工作的一部分。