2016-03-04 57 views
0

我有一個MapReduce工作讀取文本文件,並從它創建拼花文件,並在同一時間寫簡單的文本文件作爲輸出。我已經使用了多種輸出格式。但是可以初始化多個輸出格式對象,以便一次寫入實木複合地板文件或文本文件。我需要在單個映射器中兼容。任何幫助,高度讚賞。多outputformats減少

回答

0

不知道這是最好的方式,但你可以初始化我們的映射器的方法setup()一個StringBuilder,在map()方法中添加的所有文字值,然後將其在cleanup方法寫入磁盤。取決於文本輸出的大小,以及是否有足夠的內存。這樣,文本文件根本不需要是映射器輸出,而您的映射器輸出只能是Parquet數據。

您可以使用context.getInputSplit()或類似的文本輸出文件名,以便每個映射器輸出一個唯一的文件名,並知道哪個輸出與哪個輸入相關。