我正在学习MapReduce。我试图建立一个“加入”的测试。从两个文件(包含要加入的两个数据集)中获取数据的算法。
为此,映射器需要知道每行的文件;这样,它可以适当地标记它,以便reducer不会(例如)将元素从一个数据集连接到同一个集合中的其他元素。
为了使问题复杂化,我正在使用Hadoop Streaming,mapper和reducer是用Python编写的;我理解Java,但是Hadoop InputFormat和RecordReader类的文档是非常模糊的,我不明白我如何进行流兼容的拆分,以便可以将某种文件标识符捆绑在一起数据。
任何能够解释如何以我的Python程序可以理解的方式设置此输入处理的人?
答案 0 :(得分:0)
顺便说一下,我找到了答案 - 在Python中,它是:
import os
context = os.environ["map_input_file"]
然后'context'有输入文件名。