Получить и заказать самые большие кортежи из списка - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь упорядочить свой список и получить 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")

}

...