在我的reduce类中,我想使用多个输出制作许多文件。应该从reduce类中生成的数据动态地派生文件的名称。例如。考虑到for循环,每个输出文件将在for循环中具有与arraylist的第i个值相对应的名称。
我能够在reduce类中做到这一点。但在job conf中,我无法在MultipleOutputs.getNamedOutput()中设置相应的值。
我想从reduce类中的计算中动态生成多个输出文件名。有没有办法实现这个目标?
更好地解释:
在reduce类中,我有:
mos.getCollector(path,reporter).collect(key,value); 在这里,我没有动态生成路径的问题,即。文件名。
但在工作中,
MultipleOutputs.addNamedOutput(conf,path,TextOutputFormat.class,LongWritable.class,Text.class); 这就是问题所在。它必须对应于文件名,即在reduce类中动态生成的路径。
有没有办法做到这一点?或者还有其他选择。
请帮助!
感谢!!!