2013-10-09 20 views
0

我正在學習MapReduce。我正在嘗試設置一個「連接」算法,該算法從兩個文件(包含要加入的兩個數據集)中提取數據。MapReduce:流映射器如何知道哪些文件數據來自?

爲此,映射器需要知道每行是來自哪個文件;通過這種方式,它可以對其進行適當標記,以便Reducer不會(例如)將來自一個數據集的元素連接到同一集合中的其他元素。

使事情複雜化,我使用Hadoop Streaming,而mapper和reducer是用Python編寫的;我瞭解Java,但Hadoop InputFormat和RecordReader類的文檔非常模糊,我不明白我將如何進行Streaming兼容拆分,以便可以將某種文件標識符與數據一起捆綁在一起。

任何人都可以解釋如何以我的Python程序可以理解的方式設置此輸入處理?

回答

0

我在Python找到了答案,由way-,它是:

import os 
context = os.environ["map_input_file"] 

和「背景」,那麼有輸入文件名。

相關問題