Spark RDD将一行数据映射到多行

use*_*514 3 scala apache-spark rdd

我有一个文本文件,其数据如下所示:

Type1 1 3 5 9
Type2 4 6 7 8
Type3 3 6 9 10 11 25
Run Code Online (Sandbox Code Playgroud)

我想将其转换为具有以下行的RDD:

1 Type1
3 Type1
3 Type3
......
Run Code Online (Sandbox Code Playgroud)

我从案例类开始:

MyData[uid : Int, gid : String]
Run Code Online (Sandbox Code Playgroud)

Spark和Scala的新手,我似乎找不到能做到这一点的示例。

Jus*_*ony 6

看来您想要这样的东西?

rdd.flatMap(line=>{
  val splitLine = line.split(' ').toList
  splitLine match{
    case (gid:String) :: rest => rest.map(x:String =>MyData(x.toInt, gid))
  }
}
Run Code Online (Sandbox Code Playgroud)