在hadoop中动态生成多个输出

时间:2012-09-26 02:53:11

标签: java hadoop mapreduce

在我的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类中动态生成的路径。

有没有办法做到这一点?或者还有其他选择。

请帮助!

感谢!!!

0 个答案:

没有答案