通过Spark中的键写入或附加到多个输出

时间:2016-06-30 14:51:46

标签: java hadoop apache-spark output

我发现如何根据Spark中的键值编写多个输出,但是我需要使用追加模式编写相同的内容。

我正在使用saveAsHadoopFile()来编写文件,但是我的generateFileNameForKeyValue()方法返回的文件名基于与许多键类似的键,因此它会覆盖这些文件。

是否可以在追加模式下写入这些文件?

一种替代方法是在saveAsHaddopFile()之前使用groupByKey()。 我不想使用groupByKey(),因为涉及太多的改组。

我的代码段:

public class OutputFormat extends MultipleTextOutputFormat<String, CensusData2>  {



    public OutputFormat(){
    }


    @Override
    protected String generateActualKey(String key, CensusData2 value) {

        return null;
    }

    @Override
    protected String generateFileNameForKeyValue(String key, CensusData2 value, String name) {

        String fileName=key.replaceAll(" ", "").replaceAll("[^a-zA-Z0-9_-]", "")+"."+name+".out";
        return fileName;
    }
}

0 个答案:

没有答案