0
而不是给一个文件作为输入,我想给一个目录,其中可以包含任何没有文件。我想写成的方式我需要通过给出一个目录作为输入来修改地图中的常规wordcount程序
输入输出:
文件1个文件2文件3
输出:
文件1个文件2文件3
,而每个文件应该有它的字数在相应的文件中。要确定地图中使用哪个文件,我可以使用context.getInputSplit()。但我怎么能让它以我想要的方式写输出。
而不是给一个文件作为输入,我想给一个目录,其中可以包含任何没有文件。我想写成的方式我需要通过给出一个目录作为输入来修改地图中的常规wordcount程序
输入输出:
文件1个文件2文件3
输出:
文件1个文件2文件3
,而每个文件应该有它的字数在相应的文件中。要确定地图中使用哪个文件,我可以使用context.getInputSplit()。但我怎么能让它以我想要的方式写输出。
您可以使用映射器中的输入拆分来识别它们来自的文件,并将其与MultipleOutputs结合使用来写出来从您的reducer中分离文件。
但是,您需要将它来自的文件传递给reducer,因此您可能需要制作复合关键对象并编写自定义文件名和原始文件夹Partitioner
和WritableComparator
。参见:Hadoop - composite key