2017-06-02 71 views
1

的名单我有RDD个集合:压扁RDD

val rddList = scala.collection.mutable.ListBuffer[RDD[Data]]() 

包含多个RDD S上的同种Data的,但在使用不同来源的创建。我需要将这些RDD组合成一个单一的RDD

如果我做了一个rddList.flatten,然后带领元素将达到我想要的?

+0

您的意思是flatMap?你试过了吗? –

+0

你为什么问我们它是否可以工作,试试看看它是否可行。 –

+0

可能不是。你能给我们列举一些RDD的例子吗? (小点)是否有一个原因是它是一个可变列表? – Phasmid

回答

3

您需要减少然后合并以从RDD列表中创建单个RDD。下面是一个简单的例子。

val r1 = spark.sparkContext.parallelize(1 to 5) 
val r2 = spark.sparkContext.parallelize(5 to 10) 
val r3 = spark.sparkContext.parallelize(10 to 15) 

    val list = ListBuffer(r1,r2,r3) 

    list.reduce(_ union _).collect().foreach(println) 

希望这有助于!

+0

完美。这正是我所期待的。试图按照上面的建议使用FlatMap,但没有奏效。 –

+0

@FelipeWinsberg您可以使用复选号 –

+0

接受答案,您可以赞成并接受答案吗?如果这工作。 –