繁体   English   中英

Spark Scala矢量地图ClassCastException

[英]Spark Scala Vector Map ClassCastException

尝试利用Spark for Scala中的统计信息工具,并且难以准备将要使用的向量。

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”的向量,但是在工具中使用该向量时,该向量已更改为“ DenseVector”类型。

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函数将旧的Vector转换为ML中的新Vector:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM