仅使用映射器(Python脚本)而不使用reducer,如何为每行输出输出一个单独的文件作为文件名,而不是输出长文件?
可以使用-inputformat和-outputformat命令行参数替换input和outputformat类.
可以在dumbo项目中找到如何执行此操作的一个示例,该项目是用于编写流式作业的python框架.它有写入多个文件的功能,并在内部它与它的姊妹项目,一类替代输出格式羽毛 - fm.last.feathers.output.MultipleTextFiles.
然后reducer需要发出一个元组作为键,元组的第一个组件是指向应该写入带有键/值对的文件的目录的路径.可能仍有多个文件,这取决于reducer和应用程序的数量.
我建议查看dumbo,它有许多功能,可以更容易在python中的Hadoop上编写Map/Reduce程序.