0

我正在学习 MapReduce。我正在尝试设置一个“加入”算法,该算法从两个文件(其中包含要加入的两个数据集)中获取数据。

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

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

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

4

1 回答 1

0

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

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

然后“上下文”具有输入文件名。

于 2013-11-18T20:08:52.233 回答