Wie kann die maximale Zeile (Wert), die jedem eindeutigen Schlüssel in einer Funke-RDD zugeordnet ist, am besten zurückgegeben werden?Den maximalen Wert für jeden Schlüssel in einem Spark-RDD abrufen
Ich benutze Python und ich habe Math Max versucht, Zuordnung und Reduzierung von Schlüsseln und Aggregaten. Gibt es einen effizienten Weg, dies zu tun? Möglicherweise eine UDF?
Ich habe in RDD Format:
[(v, 3),
(v, 1),
(v, 1),
(w, 7),
(w, 1),
(x, 3),
(y, 1),
(y, 1),
(y, 2),
(y, 3)]
Und ich muss zurück:
[(v, 3),
(w, 7),
(x, 3),
(y, 3)]
Krawatten können den ersten Wert oder Zufalls zurückzukehren.
können Sie eine Möglichkeit, dies auch in Java zu tun? Ich benutze Java und suche nach genau der gleichen Sache – tsar2512
@zar2512 Mit Java 8 könnte dies funktionieren: 'neue JavaPairRDD (RDD). ReducedByKey ((v1, v2) -> Math.max (v1, v2));' –
Danke für die Antwort, leider verwende ich Java 7 - es erlaubt keine Lambda-Funktionen. Typischerweise muss man anonyme Funktionen schreiben. Können Sie mir mitteilen, was die Lösung in Java 7 wäre? Ich bitte um eine einfache Komparatorfunktion sollte funktionieren! – tsar2512