Qual è il modo migliore per restituire la riga massima (valore) associata a ciascuna chiave univoca in un RDD spark?Ottieni il valore massimo per ogni chiave in un RDD Spark
Sto usando python e ho provato Math max, mappando e riducendo per chiavi e aggregati. C'è un modo efficace per farlo? Forse un UDF?
ho in formato RDD:
[(v, 3),
(v, 1),
(v, 1),
(w, 7),
(w, 1),
(x, 3),
(y, 1),
(y, 1),
(y, 2),
(y, 3)]
e ho bisogno di tornare:
[(v, 3),
(w, 7),
(x, 3),
(y, 3)]
Ties possono restituire il primo valore o casuale.
può darvi un modo per fare questo in Java come bene? Sto usando java e sto cercando esattamente la stessa cosa – tsar2512
@ tsar2512 Con Java 8, questo potrebbe funzionare: 'nuovo JavaPairRDD (rdd) .reduceByKey ((v1, v2) -> Math.max (v1, v2));' –
grazie per la risposta, sfortunatamente, sto usando Java 7 - non consente le funzioni lambda. Di solito è necessario scrivere funzioni anonime. Potresti farmi sapere quale sarebbe la soluzione in Java 7? Sospetto che una semplice funzione di confronto dovrebbe funzionare! – tsar2512