无法将Dataframe转换为Labeled Point

时间:2017-08-25 13:21:46

标签: scala apache-spark apache-spark-mllib

我的程序使用Spark.ML,我在数据帧上使用逻辑回归。但是我也想使用LogisticRegressionWithLBFGS,所以我想将我的数据帧转换为LabeledPoint。

以下代码给出了错误

val model = new LogisticRegressionWithLBFGS().run(dff3.rdd.map(row=>LabeledPoint(row.getAs[Double]("label"),org.apache.spark.mllib.linalg.SparseVector.fromML(row.getAs[org.apache.spark.ml.linalg.SparseVector]("features")))))

错误:

org.apache.spark.ml.linalg.DenseVector cannot be cast to org.apache.spark.ml.linalg.SparseVector

所以我将SparseVector更改为DenseVector但它不起作用:

org.apache.spark.ml.linalg.SparseVector cannot be cast to org.apache.spark.ml.linalg.DenseVector

1 个答案:

答案 0 :(得分:0)

您是否尝试过使用org.apache.spark.mllib.linalg.Vectors.fromML?

注意:此答案是评论中的复制粘贴,以便关闭它。