如何将JavaRDD <List <String >>转换为JavaRDD <String>并写入不带“ [”和“]”的文件

时间:2019-12-13 19:00:29

标签: java apache-spark

我有一个JavaRDD<List<String>>,并且在使用时,我的文件在每个字符串列表的开头和结尾处都用[]写成

javacontext.parallelize(rdd).coalesce(1, true).saveAsTextFile("dirname");

我们可以将JavaRDD<List<String>>转换为JavaRDD<String>并将其写入文件吗?

1 个答案:

答案 0 :(得分:0)

您可以使用mapString.join中的每个List<String>应用JavaRDD

String separator = ",";
JavaRDD<String> ys = rdd
        .map(new Function<List<String>, String>() {
            @Override
            public String call(List<String> xs) throws Exception {
                return String.join(separator, xs);
            }
        });

或使用lambdas:

JavaRDD<String> ys = rdd
        .map((Function<List<String>, String>) xs -> String.join(separator, xs));