我需要通过给出一个目录作为输入来修改map reduce中的常规wordcount程序

时间:2013-04-08 14:57:51

标签: hadoop mapreduce

我想提供一个可以包含任何文件的目录,而不是给一个文件作为输入。我希望输出以某种方式写入

输入:

文件1文件2文件3

输出:

文件1文件2文件3

虽然每个文件的字数应该在相应的文件中。要识别地图中使用的文件,我可以使用context.getInputSplit()。但是我怎样才能以我想要的方式编写输出。

1 个答案:

答案 0 :(得分:0)

您可以使用映射器中的输入拆分来识别它们来自的文件,并将其与MultipleOutputs结合使用来写出与reducer中的单独文件。

但是,您需要将它来自的文件传递给reducer,因此您可能需要创建一个复合键对象并编写一个自定义PartitionerWritableComparator来传输它们。文件名和原始密钥在一起。请参阅:Hadoop - composite key

相关问题