Dataframe Pyspark-在数据框中用0填充空白月份

Dataframe Pyspark-在数据框中用0填充空白月份,dataframe,pyspark,Dataframe,Pyspark,免责声明:我对pyspark非常陌生 我已经将我的数据框按id和month\u-year进行分组,以获得用户对您的产品投入的总数。现在这个问题是没有活动的几个月,现在显示我的最终df 这就是它的工作方式: app_sessions_per_month = app_sessions.where("session_start_date_pt > '2019-05-25'").groupby('id','month_year').agg(F.sum('action').alias('count'

免责声明:我对pyspark非常陌生

我已经将我的数据框按
id
month\u-year
进行分组,以获得用户对您的产品投入的总数。现在这个问题是没有活动的几个月,现在显示我的最终df

这就是它的工作方式:

app_sessions_per_month = app_sessions.where("session_start_date_pt > '2019-05-25'").groupby('id','month_year').agg(F.sum('action').alias('count'))

+--------------------+----------+----------------------+
|             core_id|month_year|month_sum_detailaction|
+--------------------+----------+----------------------+
|aa01bb6f-2dd8-43e...|    7_2019|                     0|
|aa01bb6f-2dd8-43e...|    9_2019|                     0|
|aa01bb6f-2dd8-43e...|   10_2019|                     0|
+--------------------+----------+----------------------+
日期实际上是从2019年05月到2020年05月

原始DF:

id month_year count
1. 02_2020.   1
1. 03_2020.   4
1. 05_2020.   2
1. 06_2020.   7
1. 07_2020.   2
所需DF:

id month_year count
1. 01_2020.   0
1. 02_2020.   1
1. 03_2020.   4
1  04_2020.   0
1. 05_2020.   2
1. 06_2020.   7
1. 07_2020.   2
现在,这个示例只显示了1
id
,但我的实际数据集有数百万个id


任何帮助都将不胜感激。

我们可以假设两行之间可能有多个月的时间缺失,你的spark版本是什么?你能提供一个原始数据的示例视图以及你汇总结果的方式,以便我们更好地了解你正在做的过程吗?@SasanAhmadi-从你的更新集添加了编辑,似乎你想处理2个案例,开始时间应该是1个月,而在中间的任何地方,都缺少添加它们,并且在0~2020结束时什么也不做,如果我错了,请纠正我。我想你指的是代码中没有的“core_id”组。因此,对于第一个缺少月份的问题,您必须生成缺少月份的列表并合并结果!因为一旦你做了一个小组,就没有回头的路了,而且你可能没有丢失的月份的数据!对于Id列,据我所知,spark方面应该没有任何错误!你能提供一个简单的测试用例来清楚地显示问题吗?