spark转换矢量[org.apache.spark.sql.row]到org.apache.spark.ml.lina



我正在尝试计算数据框和向量中的行之间的距离(org.apache.spark.ml.linalg.Vector(。

我计划使用K-均值算法进行异常检测,因此我获得了中心ID,该中心ID是向量,然后我可以在数据框中计算出行的距离,但是我的错误低于错误:

Vectors.sqdist(v1,centerid)
<console>:54: error: type mismatch;
 found   : scala.collection.immutable.Vector[org.apache.spark.sql.Row] 

如何将Vector[org.apache.spark.sql.Row]转换为org.apache.spark.ml.linalg.Vector

您可以使用vectorAssembler将行转换为功能向量。尝试以下操作:

  val df: DataFrame = ???
  val vector = new VectorAssembler().setInputCols(Array("yourInputColumns")).setOutputCol("features")
  vector.transform(df)

作为输出,您将获得带有类型的一列的数据框 org.apache.spark.ml.linalg.vector

相关内容

最新更新