在我的 reduce 类中,我想使用多个输出制作许多文件。文件名应该从reduce类中生成的数据动态派生而来。例如。考虑到 for 循环,每个输出文件的名称都对应于 for 循环中 arraylist 的第 i 个值。
我能够在减少类中做到这一点。但是在作业配置中,我无法在 MultipleOutputs.getNamedOutput() 中设置相应的值。
我想从 reduce 类中的计算中动态生成多个输出文件名。有什么办法可以做到这一点?
为了更好地解释:
在减少类中,我有:
mos.getCollector(路径,报告者).collect(键,值);在这里,动态生成路径没有问题,即。文件名。
但在工作会议上,
MultipleOutputs.addNamedOutput(conf, path, TextOutputFormat.class, LongWritable.class, Text.class); 这就是问题所在。它必须对应于文件名,即在reduce类中动态生成的路径。
有没有办法做到这一点?或者有没有其他选择。
请帮忙!
谢谢!!!