如何将RDD(Spark)中的项目转换为RDD中的许多项目?

时间:2016-05-20 01:49:58

标签: scala apache-spark rdd

我从'HBase'获得了一个带有'扫描'动作的RDD。 此RDD中的每个项目都是:x1,y1,y2,y3 ...... 所以这个RDD中的项目就像(每行是扫描动作的行结果):

  1. x1,y1,y2,y3
  2. x2,y1,y4,y8,y9
  3. x3,y5
  4. ......
  5. xn,y1,y6,y100
  6. 我希望将此RDD转换为另一个RDD,如:

    1. x1,y1
    2. x1,y2
    3. x1,y3
    4. x2,y1
    5. x2,y4
    6. ...
    7. xn,y1
    8. xn,y6
    9. xn,y100
    10. 我该如何进行转换?

1 个答案:

答案 0 :(得分:2)

"flatMap that sh*t"

rdd.flatMap(x => {
  val key = x.head
  x.tail.map(y=>(key,y))
})