Moje dane jest jak:SPARK DataFrame: Usuń wartość MAX w grupie
id | val
----------------
a1 | 10
a1 | 20
a2 | 5
a2 | 7
a2 | 2
próbuję usunąć wiersz, który ma MAX (Val) w grupie, jeśli grupa I na "id".
wynik powinien być podobny:
id | val
----------------
a1 | 10
a2 | 5
a2 | 2
Używam SPARK DataFrame i SqlContext. Potrzebuję coś w stylu:
DataFrame df = sqlContext.sql("SELECT * FROM jsontable WHERE (id, val) NOT IN (SELECT is,MAX(val) from jsontable GROUP BY id)");
Jak mogę to zrobić?
Czy możesz prosić e wysłać kod równoważny JAVA? – user3802925
Nie zrobiłem żadnego Sparka na Javie ... Powinien być odpowiednik Javy dla każdego z tych API. To może nie być trudne tłumaczenie. Główne idee powinny obowiązywać. – marios
Dzięki Marios! Poniżej znajduje się implementacja Java, którą miałem z pewnymi modyfikacjami podczas dołączania, gdzie łączę się przy użyciu klucza zamiast pełnego łączenia kartezjańskiego. – user3802925