我有一个包含三列的DataFrame;如何将其转换为Scala中的嵌套数组 - Array[Array[Double]]
?
我在尝试映射时收到Array[(Double, Double)]
:
val x= dataframe.select("time","sex")
.collect()
.map(x=>x(0).toString.toDouble ,x(1).toString.toDouble)
答案 0 :(得分:1)
那是因为你的地图正在返回一个元组。因为你需要一个数组,你需要返回一个数组,如下所示。
val df = dataframe.collect().map(x => Array(x.getDouble(0), x.getDouble(1)))
访问结果使用df.head
或df(0)
修改强>
以柱状方式生成数据集Array [Array [Double]],其中每列都有自己的数组。
df.foldLeft((Array[Double](),Array[Double]())) {
case ((col1,col2),(x,y)) => (col1 :+ x) -> (col2 :+ y)
} match {
case (arr1,arr2) => Array(arr1,arr2)
}