无法将数据框转换为标记点
Can't convert Dataframe to Labeled Point
我的程序使用 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
您是否尝试过使用 org.apache.spark.mllib.linalg.Vectors.fromML?
注意:此答案是从评论中复制粘贴以允许其关闭。
我的程序使用 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
您是否尝试过使用 org.apache.spark.mllib.linalg.Vectors.fromML?
注意:此答案是从评论中复制粘贴以允许其关闭。