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

时间:2018-04-02 13:48:28

标签: scala apache-spark

我正在尝试计算数据框中的行与向量(Vectors.sqdist(v1,centerid) <console>:54: error: type mismatch; found : scala.collection.immutable.Vector[org.apache.spark.sql.Row] )之间的距离。

我计划用K-Means算法进行异常检测,所以我得到了一个矢量的中心id然后我可以计算数据帧中行的距离,但我得到了以下错误:

Vector[org.apache.spark.sql.Row]

如何将org.apache.spark.ml.linalg.Vector转换为Starting new HTTPS connection (1): test-dev-cognito-settings-us-west-2.s3.us-west-2.amazonaws.com An error occurred (AccessDenied) when calling the GetObject operation: Access Denied: ClientError

1 个答案:

答案 0 :(得分:0)

您可以使用VectorAssembler将您的行转换为功能矢量。试试这个:

  val df: DataFrame = ???

  val vector = new VectorAssembler().setInputCols(Array("yourInputColumns")).setOutputCol("features")

  vector.transform(df)

作为输出,您将获得一个带有该类型的列的Dataframe  的 org.apache.spark.ml.linalg.Vector