【问题标题】:Column features must be of type org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7 but was actually org.apache.spark.mllib.linalg.VectorUDT@f71b0bce列特征必须是 org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7 类型,但实际上是 org.apache.spark.mllib.linalg.VectorUDT@f71b0bce
【发布时间】:2018-09-18 11:45:34
【问题描述】:

spark 版本是 2.2.0,scala 版本是 2.11。当我使用 ml lib 时,出现错误:“列特征必须是类型 org.apache.spark.ml.linalg.VectorUDT@3bfc3ba7 但实际上是 org.apache .spark.mllib.linalg.VectorUDT@f71b0bce。”

这是我的代码:

import org.apache.spark.ml.classification.LogisticRegression
import org.apache.spark.sql.DataFrame
import org.apache.spark.sql.functions._

 val trainingData = dataSet
  .select(col("features"), col("label")).cache()

val lr = new LogisticRegression()
  .setMaxIter(maxIter)
  .setRegParam(regParam)
  .setElasticNetParam(0)
  .setThreshold(threshold)
  .setFitIntercept(false)

val lrModel = lr.fit(trainingData)

困扰了我好几天。谁能帮帮我?

【问题讨论】:

  • 如果您有新问题,请直接提出,不要完全重写现有问题。

标签: apache-spark


【解决方案1】:

错误消息非常清楚,您使用的是org.apache.spark.mllib.linalg.VectorUDT(旧的 MLlib API),而任何新的 API (ML) 都需要 org.apache.spark.ml.linalg.Vector

您省略了创建dataSet 的代码部分,但您应该替换:

org.apache.spark.mllib.linalg._

导入:

org.apache.spark.ml._ 

并相应地调整上游代码。

相关:

【讨论】:

    猜你喜欢
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2016-12-31
    • 2020-07-18
    • 2021-08-28
    • 1970-01-01
    相关资源
    最近更新 更多