如何将 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) }
下面的函数需要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) }