miei dati è come:SPARK dataframe: Rimuovere il valore MAX in un gruppo
id | val
----------------
a1 | 10
a1 | 20
a2 | 5
a2 | 7
a2 | 2
sto cercando di eliminare la riga che ha MAX (val) nel gruppo se il gruppo I a "id".
risultato dovrebbe essere come:
id | val
----------------
a1 | 10
a2 | 5
a2 | 2
Sto usando SPARK dataframe e SqlContext. Mi serve in qualche modo:
DataFrame df = sqlContext.sql("SELECT * FROM jsontable WHERE (id, val) NOT IN (SELECT is,MAX(val) from jsontable GROUP BY id)");
Come posso farlo?
Puoi piacere e postare il codice equivalente JAVA? – user3802925
Non ho mai usato Spark su Java ... Ci dovrebbero essere equivalenti a Java per ognuna di queste API. Potrebbe non essere così difficile fare la traduzione. Le idee principali dovrebbero applicarsi. – marios
Grazie Marios! Di seguito è riportata l'implementazione Java che avevo apportato con alcune modifiche su join, in cui mi unisco utilizzando una chiave invece di un join cartesiano completo. – user3802925