編程模型MapReduce由2個過程map和reduce組成。爲什麼我們需要地圖部分,我們可以簡單地在reduce函數中進行映射。爲什麼我們需要MapReduce中的「地圖」部分?
考慮以下僞代碼:
result = my_list.map(my_mapper).reduce(my_reducer);
這可以縮短到
result = my_list.reduce(lambda x : my_reducer(my_mapper(x)));
一號方法如何可以比第二一個更優選的,而第一個方法需要一個更通過數據?我的代碼示例是否過於簡化?
爲什麼減速機不能同時完成? – Will
我的意思是,從你的代碼,你的reducer實際上需要特定的(在你的情況下,整個地圖輸出),並且不可能不同的map輸出可以去不同的reducer,以處理並行 – Ramzy