Я пытаюсь упорядочить свой список и получить 5 самых больших кортежей в моем списке, которые затем будут распечатаны, вот код, с которым я работал:
import scala.io.Codec.string2codec
import scala.io.Source
import scala.reflect.io.File
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleWordCount {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Simple Word Count")
val sc = new SparkContext(conf)
val test = scala.io.Source.fromFile("/home/cloudera/Books/book1.txt").getLines
val wordCount =
test
.flatMap(_.split("\\W+"))
.foldLeft(Map.empty[String, Int]) {
(count, word) =>
count + (word -> (count.getOrElse(word, 0) + 1))
}
val formatteWordCount =
filtered
.map(tuple => s"${tuple._1} -> ${tuple._2}")
.mkString("\n", "\n", "\n")
при попытке запускакод в следующих строках выдает ошибку: расходящееся неявное расширение для типа scala.math.Ordering [B], начиная с метода Tuple9 в объекте Ordering
.sortBy(x => (x._2))
Я также пытался использовать .stableSort (k, (x,y) => x._2 2), который дал значение ошибки stableSort, не является членом String, и .maxBy ( ._ 2), который дал ошибку, неявное расширение для типа Ordering [B]начиная с метода Tuple9 в объекте Ordering
println(s"Final Word Count: $formatteWordCount")
}