2017-10-13 163 views
-1
RDD.takeOrdered

我得到這個試圖與SBT編譯火花的參數太多斯卡拉

sbt test 
從/家庭/共享/阿爾託/ SCC/AS1/RDD /項目

[信息]加載項目定義[info]將當前項目設置爲rdd(在構建文件中:/ home/shared/Aalto/SCC/As1/rdd /) [info]編譯1個Scala源文件到/ home/shared/Aalto/SCC/As1/rdd/target /scala-2.10/classes ... [error] /home/shared/Aalto/SCC/As1/rdd/src/main/scala/questions/GeoProcessor.scala:174:方法takeOrdered的參數太多:(num: Int)(隱式ord:Ordering [(String,Long)])Array [(String,Long)] [error] txt = t xt.zipWithIndex.takeOrdered(txt.count.toInt-2,((a,b)=> a._2> b._2))

而我沒有看到第三個參數說我有。 我想要做的是採取所有的元素,但首先2(不知道如果這是正確的>或如果它應該是一個<而不是)。 如果不可能這樣做,還有什麼其他的好方法?我已經嘗試過減法,問題是它以隨機順序返回它們。謝謝。

+0

下一次,請包括引起異常明確的_code_ - 它隱藏在錯誤信息,很難找到... –

回答

2

應該

import scala.math.Ordering 

rdd.takeOrdered(n)(Ordering.by(_._2)) 

rdd.takeOrdered(n)(Ordering[Long].on(_._2) 
+0

我想,但仍然不起作用,現在它給了我: sbt test 從/ home/shared/Aalto/SCC/As1/rdd/project加載項目定義 [info]將當前項目設置爲rdd(在構建文件中:/家用/共享/阿爾託/ SCC/As1/rdd /) /home/shared/Aalto/SCC/As1/rdd/src/main/scala/questions/GeoProcessor.scala:174:type mismatch; [錯誤]實測值:數組[(字符串,龍)] [錯誤]需要:org.apache.spark.rdd.RDD [字符串] [錯誤] \t \t \t TXT = txt.zipWithIndex.takeOrdered(txt.count .toInt-2)(Ordering [Long] .on(_._ 2)) –

+0

基本類型不匹配,找到Array(String,Long),必需RDD(String) –

+0

好吧,但這是因爲賦值,現在很好那麼,謝謝! –