我正在学习MapReduce。作为测试,我尝试设置一个“join”算法,该算法接收来自两个文件(其中包含两个要连接的数据集)的数据。
为此,映射程序需要知道每一行都来自哪个文件;这样,它就可以适当地标记它,这样还原器就不会(例如)将一个数据集中的元素连接到同一个集合中的其他元素。
更复杂的是,我使用Hadoop流,映射器和还原器都是用Python编写的;我理解InputFormat,但是Hadoop RecordReader和RecordReader类的文档非常模糊,我不知道如何进行流兼容的拆分,以便将某种类型的文件标识符与数据捆绑在一起。
谁能解释如何以我的Python程序能够理解的方式设置这个输入处理?
发布于 2013-11-18 20:08:52
我找到了答案,顺便说一句-在Python中,它是:
import os
context = os.environ["map_input_file"]然后,“context”具有输入文件名。
https://stackoverflow.com/questions/19283481
复制相似问题