2014-07-25 5 views
0

나는 Scala (2.10.4 버전)과 Spark과 함께 일해 - 나는 Spark 1.0.1로 이사했다. 버전과 내 스크립트 중 하나가 올바르게 작동하지 않는 것으로 나타났습니다. 다음과 같은 방법으로 MLlib 라이브러리의 k-means 방법을 사용합니다. 여기Spark 1.0.1 이후 KMeansModel.predict 오류가 나타나는 이유는 무엇입니까?

scala> clusters.toString 
res8: String = [email protected] 

내 질문의 방법과 컴파일하는 동안 내가받을 오류입니다 :

내가 clusters라는 이름의 KMeansModel 객체가 있다고 가정

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] 타입의 인자를 필요로하고 나는 그런 타입의 인자를 그것에 넣는다 고 생각한다. 내가 뭘 잘못하고 있는지 제안 해 주셔서 미리 감사드립니다.

답변

2

Spark 1.0.1을 사용하고 있지만 언급 한 문서 페이지는 0.9.0입니다. current documentation을 확인하면 API가 변경된 것을 확인할 수 있습니다. 배경은 the migration guide을 참조하십시오.