2014-03-05 49 views
0

我有一個數據文件,我的任務是使用map reduce從文件的每一行創建一個新的數據,因爲數據是巨大的文件。 例如:該文件包含:expression(3-4 * 7-4),我需要從該表達式(3 + 4/7 * 4)中隨機創建一個新表達式。當我使用map reduce實現任務時,我使用map來執行更改,然後簡化爲僅從mapper接收數據並對其進行排序使用map來完成主要任務是否正確?MapReduce沒有reducer功能

+0

如果你想「排序」他們,你必須使用reducer。地圖階段僅轉換您的數據。但從你的描述看,你不需要對結果進行排序? – zsxwing

回答

0

如果您不需要映射結果的排序 - 你設置0降低,(在你的驅動程序代碼做

job.setNumReduceTasks(0); 

) 和作業只調用地圖。

0

您的實施是正確的。只要確保從映射器輸出的密鑰都是唯一的,如果您不希望任何恰好相同的表達式組合在一起。

例如,既然你說你有一個龐大的數據文件,有可能是你得到兩個表達式,如3-4*7-43*4/7+4同時,新的表達式變成是3+4*7-4的可能性。如果使用表達式作爲鍵,則reducer將只會爲這兩個表達式調用一次。如果您不希望發生這種情況,請確保您爲每個密鑰使用唯一的編號。

+0

好的。謝謝您的回答。 – LAILA