Группа сумм pyspark по месяцам и датам с использованием начальной и конечной даты - PullRequest
1 голос
/ 09 апреля 2020

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

Текущий фрейм данных:

id      start_period   end_period     montly_price
1       2019-01-01     2019-03-01     30
2       2019-01-01     2019-06-01     20
3       2019-07-01     2020-08-01     10
4       2019-07-01     2020-08-01     10

Ожидаемый результат:

period          revenue_per_month_all_ids
2019-01         50
2019-02         50
2019-04         20
2019-05         20
2019-06         0
2019-07         20

1 Ответ

0 голосов
/ 09 апреля 2020

Если у вас нет контрактов, у которых start_period и end_period имеют другой месяц (если это так, как вы хотите продолжить? Не могли бы вы отредактировать свой вопрос или прокомментировать это сообщение?)


import pyspark.sql.functions as psf

df.withColumn("month",psf.month('start_period'))
  .groupBy("period")
  .agg(psf.sum("monthly_price").alias("revenue_per_month_all_ids"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...