2013-01-31 40 views
0

我有一個數據集,我做了多個映射。GAE MapReduce,如何寫多個輸出

假設我有3個鍵值對用於降低功能,我如何修改輸出,使得我有3個blobfiles - 每個密鑰值對?

請讓我知道我是否可以進一步澄清。

+0

當前mapreduce管道的輸出自動將單個鍵輸出到blobfile(其中包含所有3個鍵 - 值對)。 – Kev

+0

我想我在找什麼,就像Hadoop中的MultipleOutputs類,你可以寫入不同的輸出。 – Kev

回答

1

我不認爲這樣的功能存在(沒有?)在GAE映射精簡庫。

根據您的數據集的大小,並輸出所需要的類型,可以小的時間投資通過增選減速機作爲另一個輸出作家破解它周圍的路。例如,如果其中一個reducer輸出應該直接返回到數據存儲區,並且另一個輸出應該轉到一個文件,您可以自己打開一個文件並將輸出寫入它。或者,您可以使用operation.db.Put序列化並明確地將中間映射結果存儲到臨時數據存儲,並在該數據存儲上執行單獨的映射或減少作業。當然,這最終會比第一種解決方法更昂貴。

在特定鍵值例子,我建議寫一個谷歌雲存儲文件,和後處理它需要它分成三個文件。這也會讓你更好地控制最終的文件名。