Spark Scala API DStream提供了一种方法saveAsTextFiles
,用于将Dstream RDD存储在HDFS上。
如何使用Spark Java API在DFS中存储DStream RDD?
答案 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。