2013-08-05 75 views
0

我正在使用hadoop streaming來處理一個巨大的文件。 說我有一個文件,每行都是一個數字,我想把這個文件分成2個文件,其中一個包含奇數 數字,其他偶數。分區如何在從mapper到reducer的數據上工作?

使用Hadoop,我可以指定2個減速這份工作,導致當數從映射到 減速,我還以爲號進入到減速機是由number % 2確定的,對不對?

但我已另外,它不是簡單地number % 2hash(number) % 2這就使得一些 去哪家減速,是真的嗎?

如果是這樣,我該怎麼做?我可以指定一個分區器或其他東西來使它正確嗎?

回答

0

如何在你的映射器中進行拆分?

例如,每個映射器確實

if int(number) % 2 == 0: 
    # Output "EVEN", number 
else: 
    # Output "ODD", number 

然後在兩個鍵減少:偶數和奇數,將其寫入到相應的文件。

相關問題