Ich haben ein RDD
mit folgenden Struktur:Spark-Scala: GroupByKey und Art
val rdd = RDD[ (category: String, product: String, score: Double) ]
Mein Ziel ist es, group
die Daten auf Basis der Kategorie, und dann für jede Kategorie sort
w.r.t. Punktzahl von Tuple 2 (product, score)
. Derzeit ist mein Code:
val result = rdd.groupByKey.mapValues(v => v.toList.sortBy(-_._2))
Dies erweist sich als sehr teure Operation für die Daten, die ich habe. Ich bin auf der Suche nach Verbesserung der Leistung mit alternativen Ansatz.
Warum ist es so wichtig, zu sortieren? –
Es könnte hilfreich sein, wenn Sie grobe Größen angeben könnten - wie viele Artikel in der Original-RDD, wie viele Kategorien, wie viele Artikel pro Kategorie im Durchschnitt. Wie lange dauert das, auf welcher Art von Hardware? Wie schnell brauchst du es? – DNA
Wie planen Sie die sortierten Daten zu konsumieren? Haben Sie vor, durch alle zu iterieren, wollen Sie nur die beste finden? – marios