2017-08-11 40 views
0

我有一个像[(Int, Iterable[Int])](键值格式)的RDD。我想扁平化价值部分。如何扁平化键值元组的值元组?

我曾尝试:

rdd.productIterator.foreach(x => x._2.productIterator.foreach(print)) 

不过,我得到以下错误:

error: value _2 is not a member of Any rdd.productIterator.foreach(x => x._2.productIterator.foreach(print))

回答

0

扁平化的价值部分应做

rdd.flatMap(x => x._2.map(y => y)).foreach(println) 

来解决。如果你正在寻找到flatten关键与每个在迭代值然后下面应该解决您的问题

rdd.flatMap(x => x._2.map(y => (x._1, y))).foreach(println) 
1

它看起来像你想flatMapValues

val rdd: RDD[(Int, Iterable[Int])] = sc.parallelize(Seq((1, Seq(1, 2, 3)))) 
rdd.flatMapValues(idenitity)