我已经从this post中看到了有关初始化空rdd的答案。但是我发现spark在emptyRDD函数中需要一个参数。如果没有将任何参数传递给emptyRDD()
,则无法使用。
public <T> RDD<T> emptyRDD(scala.reflect.ClassTag<T> evidence$8)
(请参见here)
基本上,我想创建一个空的JavaPairRdd作为JavaPairRDD<Map<Enum, String>, String>
。我认为spark需要此处的通用类的类。但是我找不到合适的论据来使它起作用。
下面是我尝试过的代码,有人有想法吗?
protected JavaPairRDD<Map<Enum, String>, String> getEmptyRdd() {
// the class type passed to emptyRDD should match Tuple2<Map<Enum, String>, String>
JavaRDD<Tuple2<Map<Enum, String>, String>> temp = sparkContext.emptyRDD(scala.reflect.ClassManifestFactory.fromClass(String.class));
return JavaPairRDD.fromRDD(temp);
}