我正在学习 MapReduce。我正在尝试设置一个“加入”算法,该算法从两个文件(其中包含要加入的两个数据集)中获取数据。
为此,映射器需要知道每一行来自哪个文件;这样,它可以适当地标记它,以便化简器不会(例如)将来自一个数据集的元素连接到来自同一数据集的其他元素。
更复杂的是,我使用的是 Hadoop Streaming,mapper 和 reducer 是用 Python 编写的;我了解 Java,但是 Hadoop InputFormat 和 RecordReader 类的文档非常模糊,我不明白如何进行与 Streaming 兼容的拆分,以便可以将某种文件标识符与数据捆绑在一起。
谁能解释如何以我的 Python 程序可以理解的方式设置此输入处理?