Я новый разработчик в Spark Scala, и у меня есть простая таблица, подобная этой:
City Dept employee_id employee_salary
NY FI 10 10000
NY FI null 20000
WDC IT 30 100000
LA IT 40 500
Что я хочу сделать, это рассчитать:
- количество сотрудников по городам и департаментам (простой счет (*))
- количество сотрудников с ненулевым идентификатором
- количество сотрудников с небольшим (<500) или средним ( <1000) или высокая зарплата (> 1000) => 3 дополнительных пункта!
Итак, в качестве вывода у меня должно быть что-то вроде этого:
City Dept total_emp total_emp total_emp_small total_emp_medium total_emp_high
NY FI 100 90 10 70 10
WDC IT 200 100
LA IT 10 10
Задача здесь в том, что я хочу оптимизировать эти показатели. Потому что, как вы видите, у нас здесь много дел. Без оптимизации грубая сила для меня - сделать один подсчет по запросу и сгенерировать новый результат DF после каждого подсчета, и в конце я делаю левое соединение на основе фиксированного столбца (city & dept), чтобы добавить эти новые столбцы. Но это будет слишком тяжело, так как моя таблица содержит много данных.
Я думаю, что метод "окно" может упростить это, но я не уверен.
Можете ли вы помочь мне в этом минимум с двумя случаями (id! = null и оклад <500). </p>
Заранее спасибо