为什么KmeansModel.predict错误自Spark 1.0.1开始出现。?

时间:2014-07-25 12:20:18

标签: scala apache-spark k-means apache-spark-mllib predict

我使用Scala(2.10.4版本)和Spark - 我已移至Spark 1.0.1。版本并注意到我的一个脚本现在无法正常工作。它以下列方式使用MLlib库中的k-means方法。

假设我有一个名为KMeansModel的{​​{1}}个对象:

clusters

这是我的方法,我在尝试编译时遇到错误:

scala> clusters.toString
res8: String = org.apache.spark.mllib.clustering.KMeansModel@689eab53

KMeansModel documentation清楚地说scala> def clustersSize(normData: RDD[Array[Double]]) = { | normData.map(r => clusters.predict(r)) | } <console>:28: error: overloaded method value predict with alternatives: (points: org.apache.spark.api.java.JavaRDD[org.apache.spark.mllib.linalg.Vector])org.apache.spark.api.java.JavaRDD[Integer] <and> (points: org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector])org.apache.spark.rdd.RDD[Int] <and> (point: org.apache.spark.mllib.linalg.Vector)Int cannot be applied to (Array[Double]) normData.map(r => clusters.predict(r)) 函数需要一个predict类型的参数,我想我确实把它(不是我?)这样的参数放到了它上面。提前感谢您对我做错的任何建议。

1 个答案:

答案 0 :(得分:2)

您使用的是Spark 1.0.1,但您引用的文档页面适用于0.9.0。查看current documentation,您会看到API已更改。有关背景信息,请参阅the migration guide