0

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

输入 :

文件 1 文件 2 文件 3

输出 :

文件 1 文件 2 文件 3

而每个文件都应该在相应的文件中有它的字数。要确定地图中使用了哪个文件,我可以使用 context.getInputSplit() 。但是我怎样才能让它以我想要的方式编写输出。

4

1 回答 1

0

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

但是,您需要将它来自的文件传递给减速器,因此您可能需要创建一个复合键对象并编写一个自定义Partitioner并将WritableComparator文件名和原始键一起传递。请参阅:Hadoop - 复合键

于 2013-04-08T15:13:29.577 回答