将RDD组合在一个循环中

时间:2017-09-07 18:06:19

标签: apache-spark

以下是我的情景:

我有一个名为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)));
    }

或者我可以使用的其他选项是什么。

1 个答案:

答案 0 :(得分:2)

使用SparkContext.union或JavaSparkContext.union。它可以结合许多RDD,结果你有更简单的DAG。见RDD.union vs SparkContex.union