Dataframe Pyspark-在数据框中用0填充空白月份
免责声明:我对pyspark非常陌生 我已经将我的数据框按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'
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
现在,这个示例只显示了1id
,但我的实际数据集有数百万个id
任何帮助都将不胜感激。我们可以假设两行之间可能有多个月的时间缺失,你的spark版本是什么?你能提供一个原始数据的示例视图以及你汇总结果的方式,以便我们更好地了解你正在做的过程吗?@SasanAhmadi-从你的更新集添加了编辑,似乎你想处理2个案例,开始时间应该是1个月,而在中间的任何地方,都缺少添加它们,并且在0~2020结束时什么也不做,如果我错了,请纠正我。我想你指的是代码中没有的“core_id”组。因此,对于第一个缺少月份的问题,您必须生成缺少月份的列表并合并结果!因为一旦你做了一个小组,就没有回头的路了,而且你可能没有丢失的月份的数据!对于Id列,据我所知,spark方面应该没有任何错误!你能提供一个简单的测试用例来清楚地显示问题吗?