Spark Scala Vector Map ClassCastException



试图使用Spark中的Scara中的统计工具,并且难以准备将采用的向量。

val featuresrdd =   features.rdd.map{_.getAs[Vector]("features")}
featuresrdd: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector] = MapPartitionsRDD[952] at map at <console>:82

这会产生" mllib.linalg.vector"类型的向量,但是在工具中使用它后,向量已更改为键入'demanevector'。

import org.apache.spark.mllib.linalg._
import org.apache.spark.mllib.stat.Statistics
import org.apache.spark.rdd.RDD
val correlMatrix: Matrix = Statistics.corr(featuresrdd, "pearson")
java.lang.ClassCastException: org.apache.spark.ml.linalg.DenseVector cannot be cast to org.apache.spark.mllib.linalg.Vector

任何帮助将不胜感激。

谢谢

使用asML函数将旧向量转换为ML中的新向量:

val newMLFeaturesRDD = featuresrdd.map(_.asML)
val correlMatrix: Matrix = Statistics.corr(newMLFeaturesRDD , "pearson")

最新更新