Cha*_*tti 18 java apache-spark rdd
我有一个RDD叫
JavaPairRDD<String, List<String>> existingRDD;
Run Code Online (Sandbox Code Playgroud)
现在我需要将其初始化 existingRDD为空,这样当我得到实际的rdd时,我可以用它做一个联合existingRDD.existingRDD除了将其初始化为null之外,如何初始化为空RDD?这是我的代码:
JavaPairRDD<String, List<String>> existingRDD;
if(ai.get()%10==0)
{
existingRDD.saveAsNewAPIHadoopFile("s3://manthan-impala-test/kinesis-dump/" + startTime + "/" + k + "/" + System.currentTimeMillis() + "/",
NullWritable.class, Text.class, TextOutputFormat.class); //on worker failure this will get overwritten
}
else
{
existingRDD.union(rdd);
}
Run Code Online (Sandbox Code Playgroud)
eli*_*sah 27
要在Java中创建一个空的RDD ,您只需执行以下操作:
// Get an RDD that has no partitions or elements.
JavaSparkContext jsc;
...
JavaRDD<T> emptyRDD = jsc.emptyRDD();
Run Code Online (Sandbox Code Playgroud)
我相信你知道如何使用泛型,否则,对于你的情况,你需要:
JavaRDD<Tuple2<String,List<String>>> emptyRDD = jsc.emptyRDD();
JavaPairRDD<String,List<String>> emptyPairRDD = JavaPairRDD.fromJavaRDD(
existingRDD
);
Run Code Online (Sandbox Code Playgroud)
您还可以使用该mapToPair方法将您转换JavaRDD为a JavaPairRDD.
在斯卡拉:
val sc: SparkContext = ???
...
val emptyRDD = sc.emptyRDD
// emptyRDD: org.apache.spark.rdd.EmptyRDD[Nothing] = EmptyRDD[1] at ...
Run Code Online (Sandbox Code Playgroud)