在pyspark数据帧中检索最大值时遇到问题

2024-09-28 19:33:40 发布

您现在位置:Python中文网/ 问答频道 /正文

之后,我通过使用窗口和对一组列进行分区,计算pyspark数据帧中每行5行内的平均数量

from pyspark.sql import functions as F
prep_df = ...
window = Window.partitionBy([F.col(x) for x in group_list]).rowsBetween(Window.currentRow, Window.currentRow + 4)
consecutive_df = prep_df.withColumn('aveg', F.avg(prep_df['quantity']).over(window))

我尝试按同一组分组,并选择平均值的最大值,如下所示:

grouped_consecutive_df = consecutive_df.groupBy(group_column_list).agg(F.max(consecutive_df['aveg']).alias('aveg'))

然而,当我调试时,我发现计算出的最大值是错误的。对于特定的实例,我发现检索到的最大值甚至不在“aveg”列中

我想问一下,我是采取了错误的做法还是遗漏了一些琐碎的东西。如有任何意见,我们将不胜感激


Tags: 数据df数量错误groupwindowlistpyspark
1条回答
网友
1楼 · 发布于 2024-09-28 19:33:40

我可以这样解决这个问题:在聚合之前,我将数量平均值的最大值映射到另一个新列,然后选择组中的一行

相关问题 更多 >