使用multipleoutputs mapreduce在多个文件中写入数据

u2nhd7ah  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(369)

我写过mapreduce代码,使用multipleoutputs在多个文件中写入数据,但问题是,它创建了多个文件,但没有在其中写入数据为什么?

IN REDUCE
 public MultipleOutputs multipleoutputs;

      public void configure(JobConf job)
            {
              multipleoutputs=new MultipleOutputs(job);                   
            }   
 public void reduce(....)
{
OutputCollector outcollect=multipleoutputs.getCollector("tfidf","1",reporter);                         
                outcollect.collect(new Text(s),new FloatWritable(tfidf));
}
IN DRIVER
 MultipleOutputs.addMultiNamedOutput(conf,"tfidf",TextOutputFormat.class, Text.class,FloatWritable.class);
h43kikqp

h43kikqp1#

这是因为您需要在 MultipleOutputs ,您要在其中写入特定输出。
您需要在驱动程序中添加以下行:

MultipleOutputs.addMultiNamedOutput(conf,"SECOND_FILE_NAME",TextOutputFormat.class, Text.class,FloatWritable.class);

更多详情请参见链接

相关问题