我有一个包含三列的 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)
最佳答案
那是因为你的 map 返回一个元组。由于您需要一个数组,因此您需要返回一个数组,如下所示。
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)
}
关于java - 我们如何从数据帧在 scala 中创建嵌套数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41985177/