以下是我的情景:
我有一个名为fileNamesList的RDD列表。
List<JavaRDD<Tuple2<String, String>>> fileNamesList = new ArrayList<JavaRDD<Tuple2<String, String>>>();
fileNamesList.add(newRDD); //adding RDD's to list
我在列表中添加了多个newRDD,这是在一个循环中。所以列表最多增加到10个。
我想组合(联合)列表fileNamesList
中的所有RDD。是否可以像下面这样做;
JavaPairRDD<String, String> finalFileNames ;
for (int j = 0; j < IdList.size()-1; j++) {
finalFileNames = JavaPairRDD.fromJavaRDD(fileNamesList.get(j)).
union(JavaPairRDD.fromJavaRDD(fileNamesList.get(j + 1)));
}
或者我可以使用的其他选项是什么。
答案 0 :(得分:2)
使用SparkContext.union或JavaSparkContext.union。它可以结合许多RDD,结果你有更简单的DAG。见RDD.union vs SparkContex.union