0
我与Scala
(2.10.4版本)和Spark
一起工作 - 我已转移到Spark
1.0.1。版本,并注意到我的一个脚本现在无法正常工作。它以如下方式使用MLlib
库中的k-means方法。为什么从Spark 1.0.1开始出现KMeansModel.predict错误?
假设我有一个名为clusters
一个KMeansModel
对象:
scala> clusters.toString
res8: String = [email protected]
这里是我的问题的方法和我收到试图编译错误:
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))
的KMeansModel documentation明确表示, predict
函数需要一个参数Array[Double]
类型,我想我会把(不是吗?)这样的类型的参数给它。提前谢谢你对我做错什么的建议。