Size: a a a

2021 April 06

JF

Jane Frankenstein in Moscow Spark
к примеру
источник

ЕГ

Евгений Глотов... in Moscow Spark
WithColumn(order, when(state = NA, lit(0)).otherwise(lit(1))
источник

А

Андрей in Moscow Spark
Row_number() over (partition by name, department order by name) as rn и дальше фильтр по rn=1
источник

JF

Jane Frankenstein in Moscow Spark
спасибо, сейчас c row_number попробую
источник

z

zxyzxy in Moscow Spark
Только rank вместо row number
источник

IS

Ilya Slesarev in Moscow Spark
Что-то не то)
источник

IS

Ilya Slesarev in Moscow Spark
С таким роу намбером не выберется из NY уник
источник

ЕГ

Евгений Глотов... in Moscow Spark
Вот это в ордер бай окна добавить
источник

IS

Ilya Slesarev in Moscow Spark
Я не вижу адекватных способов кроме как присвоить каждому штату цифру, причем NY - 1, а остальным пофиг какие
И брать такой ранк с сортировкой по этой цифре и брать rn = 1
источник

ЕГ

Евгений Глотов... in Moscow Spark
И фильтр where rn = 1 or state = NY
источник

IS

Ilya Slesarev in Moscow Spark
А, да, или так)
источник

t

tenKe in Moscow Spark
1. окно по name,dep
2. collect_set(state).over(window)
3. filter ( esli state == NY ili collected_set ne array_contains(NY))
источник

JF

Jane Frankenstein in Moscow Spark
я так даже думала 🙂
источник

JF

Jane Frankenstein in Moscow Spark
но что-то не работает у меня
источник

JF

Jane Frankenstein in Moscow Spark
не окном, а группбайем
источник

t

tenKe in Moscow Spark
кажется это должно работать
источник

JF

Jane Frankenstein in Moscow Spark
проверяю, спасибо
источник

А

Андрей in Moscow Spark
Если цель была выбрать уникальное сочетание Name+Dept, как показано вот на этом скрине, то вот эта конструкция row_number() over (partition by name, department order by name ) as rn дает такой результат:
источник

А

Андрей in Moscow Spark
источник

А

Андрей in Moscow Spark
Вроде все правильно. Или я чего-то не понял в изначальном условии задачи.
источник