PySpark Dataframe Groupby и считать нулевые значения - PullRequest
0 голосов
/ 20 марта 2019

У меня есть Spark Dataframe следующей формы:

+------+-------+-----+--------+
| Year | Month | Day | Ticker |
+------+-------+-----+--------+

Я пытаюсь сгруппировать все значения по «году» и подсчитать количество пропущенных значений в каждом столбце за год.

Я нашел следующий фрагмент (забыл, откуда):

df.select(*(sum(col(c).isNull().cast("int")).alias(c) for c in df.columns)).show()

Это отлично работает при расчете количества пропущенных значений в столбце.Тем не менее, я не уверен, как бы я изменил это, чтобы вычислить пропущенные значения в год.

Любые указатели в правильном направлении будут высоко оценены.

1 Ответ

0 голосов
/ 20 марта 2019

Вы можете просто использовать ту же логику и добавить группу по.Обратите внимание, что я также удаляю «год» из агрегированных столбцов, но это не обязательно (вы получите два столбца «год»).

columns = filter(lambda x: x != "year", df.columns)
df.groupBy("year")\
  .agg(*(sum(col(c).isNull().cast("int")).alias(c) for c in columns))\
  .show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...