【发布时间】:2017-09-25 05:11:36
【问题描述】:
尝试使用 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
任何帮助将不胜感激。
谢谢
【问题讨论】:
-
正如我在您之前的问题中所指出的,您应该探索如何使用
DataFrames(在spark.ml包中)而不是RDDs 来做您需要做的事情。基于RDD的 API 几乎已被弃用。
标签: scala apache-spark apache-spark-mllib