所以我从镶木地板文件中加载了一个数据框。此数据框现在包含未指定数量的列。第一列是Label,以下是功能。
我想将数据框中的每一行保存为LabeledPoint。
到目前为止我在想:
val labeledPoints: RDD[LabeledPoint] =df.map{row => LabeledPoint(row.getInt(0),Vectors.dense(row.getDouble(1),row.getDouble(2)))}
很容易获得列索引,但在处理大量列时,这不会成功。我希望能够将从索引1开始的整个行(因为索引0是标签)加载到密集向量中。
有什么想法吗?
答案 0 :(得分:1)
这应该可以解决问题
df.map {
row: Row =>
val data = for (index <- 1 until row.length) yield row.getDouble(index)
val vector = new DenseVector(data.toArray)
new LabeledPoint(row.getInt(0), vector)
}