我的程序使用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
答案 0 :(得分:0)
您是否尝试过使用org.apache.spark.mllib.linalg.Vectors.fromML?
注意:此答案是评论中的复制粘贴,以便关闭它。