从下面的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))
请帮助我。 我是新手。
答案 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(",")))
})