java - 在 reducer 输出上删除-r-00000

标签 java hadoop mapreduce multipleoutputs

我正在使用MultipleOutputs这样的:

public int run(String[] args) throws Exception {
        ...
        job1.setInputFormatClass(TextInputFormat.class);
        job1.setOutputFormatClass(TextOutputFormat.class);          

        ****MultipleOutputs.addNamedOutput(job1, "stopwords", TextOutputFormat.class, Text.class, IntWritable.class);****
        ...
}

在 reducer 上
public static class ReduceWordCount extends Reducer<Text, IntWritable, Text, IntWritable> {  
    private MultipleOutputs<Text, IntWritable> mos;
    @Override
    public void setup(Context context) {
         mos = new MultipleOutputs<Text, IntWritable>(context);
    }
    @Override
    public void reduce(Text word, Iterable<IntWritable> counts, Context context) throws IOException, InterruptedException {
        int sum = 0;
        for (IntWritable count : counts) {
            sum += count.get();
        }
        if(sum>4000){
            context.write(word, new IntWritable(sum));
            mos.write("stopwords", new Text(word+", "), sum, "stopwords.csv");
        }
    }
    protected void cleanup(Context context) throws IOException, InterruptedException {
        mos.close();
    }
}

我得到的输出文件是stopwords.csv-r-00000
我需要摆脱-r-00000。我怎样才能做到这一点?

最佳答案

我可能会向谁找到答案here,他在工作完成后将文件重命名

    FileSystem hdfs = FileSystem.get(getConf());
    FileStatus fs[] = hdfs.listStatus(new Path(args[1]));
    if (fs != null){ 
    for (FileStatus aFile : fs) {
        if (!aFile.isDir()) {
            hdfs.rename(aFile.getPath(), new Path(aFile.getPath().toString()+".txt"));
        }
    }
}

关于java - 在 reducer 输出上删除-r-00000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46853107/

相关文章:

java - Gradle 构建未完成

linux - bash:bin/hadoop:没有这样的文件或目录(ubuntu 16.04 上的 hadoop 2.7.3)

hadoop - 无法读取part-00000(MapReduce输出)

Hadoop分布式文件系统

hadoop - Mapreduce 并行副本与 http 线程

hadoop - MapReduce 程序中 DistributedCache 的替代方案是什么?

java - 安卓工作室 : View who is visible only in preview

java - 在plugin.yml中找不到主类

java - 如何将 JarInputStream 转换为 JarFile 而不保存到磁盘?

hadoop - 如何将 HBase 表以 Parquet 格式移动到 HDFS?