我正在尝试计算数据框和向量中的行之间的距离(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