如何将 Array[List[Int]] 转换为 RDD[(int,int,int)]

How to transform an Array[List[Int]] into RDD[(int,int,int)]

下面的函数需要return一个RDD[(int,int,int)]:

def getResults(sc:SparkContext, lower_bound:Int, upper_bound:Int, data_path:String):RDD[(Int, Int, Int)] = {
    ...
    val result = mapping.map(x=>x._2).map(x=>x.head.toArray)
}

但是,我得到了以下结果:

scala> result.collect res117: Array[Array[Int]] = Array(Array(10398, 55, 120), Array(10286, 35, 100))

我怎样才能 return 作为 RDD[(int,int,int)] 返回 Main 的结果?

你可以简单地 collect (或者 map 如果你能保证形状) pattern matching:

result.collect { case Array(x, y, z) => (x, y, z) }