如何从reducer输出中的part-r-00000中删除-r-00000

时间:2014-12-15 21:27:33

标签: java hadoop2

在我的MapReduce代码中,在reducer方面我正在实现MultipleOutputs并且我已将inputsplit附加到它。我想要输出文件名作为我的键值而不是keyvalue-r-00000。如何删除尾随值。这是我在reducer方面的代码。

String last = map.lastKey();
        String tab2[] = last.split(",");
        String line1 = "[" + tab2[2] + "," + tab2[3] + "," + tab2[8] + "]" + "\n" + "];";
        text1.set(line1);
        multipleOutputs.write(NullWritable.get(), text1, generateFileName(key));
    }

    String generateFileName(Text key){
        return key.toString();      
    }

    @Override
    public void setup(Context con){
        multipleOutputs = new MultipleOutputs<NullWritable, Text>(con);
    }

    @Override
    public void cleanup(final Context context) throws IOException, InterruptedException{
        multipleOutputs.close();
    }
}

1 个答案:

答案 0 :(得分:-1)

根据Javadoc of MultipleOutputs,参数如下

write(KEYOUT key, VALUEOUT value, String baseOutputPath)

这里你的第一个参数应该是键

所以它会是

multipleOutputs.write(key, text1, generateFileName(key));

这对我有用。