Проблема при применении агрегатных функций, таких как count, sum для столбцов, имеющих нулевые значения в PySpark - PullRequest
0 голосов
/ 18 сентября 2018

У нас есть следующий входной фрейм данных.

df1


Деп | Пол | Зарплата | DOB | Место

Финансы | Мужской | 5000 | 2009-02-02 00: 00: 00 | Великобритания

HR | Женский | 6000 | 2006-02-02 00: 00: 00 | ноль

HR | Мужской | 14200 | ноль | US

IT | Мужской | null | 2008-02-02 00: 00: 00 | null

IT | Male | 55555 | 2008-02-02 00: 00: 00 | UK

Маркетинг | Женский | 12200 | 2005-02-02 00: 00: 00 | UK


Использовал следующий код, чтобы найти счет:

    df = df1.groupBy(df1['Dep'])
    df2 =  df.agg({'Salary':'count'})
    df2.show()

Результат:


Dep | count (Зарплата)

Финансы | 1

HR | 2

Маркетинг | 1

IT| 1


Ожидаемый результат показан ниже.


Dep | count (Зарплата)

Финансы | 1

HR |2

Маркетинг | 1

IT | 2


Здесь возникает проблема с данными 4-й строки, где данные о зарплате равны нулю.И операция подсчета на нуле не работает.

Благодарим вас за помощь в решении этой проблемы.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы можете заменить нулевые значения:

df \
    .na.fill({'salary':0}) \
    .groupBy('Dep') \
    .agg({'Salary':'count'})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...