2016-06-27 4 views
1
def wordCount(dataSet: RDD[String]): Map[String, Int] = { 
    val counts = dataSet.flatMap(line => line.split(",")) 
     .map(word => (word, 1)) 
     .reduceByKey(_ + _) 
     .sortBy(_._2, ascending = false) 
     counts.collectAsMap() 
} 

Diese Methode ist nicht die Endergebnis Sortierung als aspectedApache Spark-Wordcount-Methode nicht das Sortieren von Daten

.sortBy(_._2, ascending = false)

der Ausgang dieses Verfahrens in absteigender Reihenfolge sein wird, aber der Ausgang ist immer noch der Zufall irgendein Grund oder Lösung?

+7

Karten sind nicht geordnet/sortiert. Verwenden Sie stattdessen Sammeln. –

Antwort

0

Methode collectAsMap() erstellt intern eine HashMap mit Werten, die in diesem Fall nicht geordnet sind. Verwenden Sie collect oder takeOrdered für sortierte Werte.