Преобразовать массив [org.apache.spark.sql.Row] в DenseMatrix[Double] в scala

У меня есть это решение, которое работает, но мне интересно, есть ли умный способ сделать это, избегая явного цикла for и toString.toDouble преобразование

import scala.collection.mutable.ArrayBuffer

val rows: Array[Row] = df2.collect()
//rows: Array[org.apache.spark.sql.Row] = Array([-1.35980713367,...

var e = ArrayBuffer[Array[Double]]()

for(row <- rows){
  val x = row.toSeq.toArray
  val y = x.map(_.toString.toDouble)
  e += y
}
val dm = DenseMatrix(e.toArray:_*)

0 ответов

Другие вопросы по тегам