0
使用VectorAssembler我得到了以下數據框(假設它已經是一個數據幀):在星火
val df = sc.parallelize(Seq((1, 2, 10), (3, 4, 11), (5, 6, 12)))
.toDF("a", "b", "c")
,我要的列(不是全部)結合起來,一列,並使其成爲RDD數組[Double]。我正在做以下事情:
import org.apache.spark.ml.feature.VectorAssembler
val colSelected = List("a","b")
val assembler = new VectorAssembler()
.setInputCols(colSelected.toArray)
.setOutputCol("features")
val output = assembler.transform(df).select("features").rdd
直到這裏沒關係。現在輸出是格式爲RDD[spark.sql.Row]
的數據幀。我無法將其轉換爲格式RDD[Array[Double]]
。任何方式?
我試圖像下面,但沒有成功:
output.map { case Row(a: Vector[Double]) => a.getAs[Array[Double]]("features")}