如何保存Spark Java Dstream RDD

时间:2015-05-11 11:43:33

标签: apache-spark spark-streaming

Spark Scala API DStream提供了一种方法saveAsTextFiles,用于将Dstream RDD存储在HDFS上。

Spark Java API's DStream

中没有相应的方法

如何使用Spark Java API在DFS中存储DStream RDD?

5 个答案:

答案 0 :(得分:2)

Time参数可用于前缀/后缀实际路径。

myrdd.foreachRDD(new Function2<JavaPairRDD<Integer, String>, Time, Void>() {
    public Void call(JavaPairRDD<Integer, String> rdd) {
                        rdd.saveAsTextFile(path + "-" + time.toString().split(" ")[0]);
                        return null;
                    }
                });

答案 1 :(得分:0)

使用Dstream的foreach mathod,您可以先从Dstream获取所有RDD,然后使用saveAsTextFile方法保存这些rdds。

以下是示例代码

sortedCounts.foreach(new Function<JavaPairRDD<Integer, String>, Void>() {
                    public Void call(JavaPairRDD<Integer, String> rdd) {
                        rdd.saveAsTextFile(path);
                        return null;
                    }
                });

答案 2 :(得分:0)

尝试使用dstream()方法将JavaDStream转换为DStream。例如..

lines.dstream().saveAsObjectFiles("pre", "suf")

答案 3 :(得分:0)

如果JavaDStream对象为dstream且目录路径为path,则可以将其保存为

 dstream.foreachRDD(rdd -> {
                rdd.saveAsTextFile(path);
            });

答案 4 :(得分:-1)

使用JavaDStream类的forERDRD API。