MapReduce:流式映射器如何知道哪些文件数据来自?

时间:2013-10-09 21:53:18

标签: java python input mapreduce streaming

我正在学习MapReduce。我试图建立一个“加入”的测试。从两个文件(包含要加入的两个数据集)中获取数据的算法。

为此,映射器需要知道每行的文件;这样,它可以适当地标记它,以便reducer不会(例如)将元素从一个数据集连接到同一个集合中的其他元素。

为了使问题复杂化,我正在使用Hadoop Streaming,mapper和reducer是用Python编写的;我理解Java,但是Hadoop InputFormat和RecordReader类的文档是非常模糊的,我不明白我如何进行流兼容的拆分,以便可以将某种文件标识符捆绑在一起数据。

任何能够解释如何以我的Python程序可以理解的方式设置此输入处理的人?

1 个答案:

答案 0 :(得分:0)

顺便说一下,我找到了答案 - 在Python中,它是:

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

然后'context'有输入文件名。