我写过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);
1条答案
按热度按时间h43kikqp1#
这是因为您需要在
MultipleOutputs
,您要在其中写入特定输出。您需要在驱动程序中添加以下行:
更多详情请参见链接