创建配对RDD

时间:2017-06-02 08:48:29

标签: apache-spark

从下面的RDD中,我想创建一对RDD。

val line = sc.parallelize(Array("2,SMITH,AARON"))

我使用了以下代码:

val pair = line.map(x => (x.split(",")(0).toInt, x))

生成的输出为Array[(Int, String)] = Array((2,2,SMITH,AARON))

但我希望所需的输出为Array[(Int, String)] = Array((2,SMITH,AARON))

请帮助我。 我是新手。

2 个答案:

答案 0 :(得分:1)

休息一下:

val pair = line.map(x => x.split(",") match {
  case Array(x, xs @ _ *) => (x.toInt, xs.join(",")}
})

答案 1 :(得分:-1)

这样做的简单方法是在每个位置拆分并获取数组

line.map(r => {
   val split = r.split(",")
   (split(0).toInt, (split.tail.mkString(",")))
})
相关问题