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

时间:2016-03-04 03:24:29

标签: scala apache-spark rdd

以下函数需要返回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)
}

但是,我得到以下结果:

  

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

如何将结果作为RDD[(int,int,int)]返回Main

1 个答案:

答案 0 :(得分:3)

使用pattern matching,您可以collect(或map,如果可以保证形状):

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