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

Having trouble on retrieving max values in a pyspark dataframe

在我使用 window 并划分一组列

计算 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))

我正在尝试对同一组进行分组,select 平均值的最大值如下所示:

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

但是,当我调试时,我发现计算出的最大值是错误的。对于特定实例,我看到检索到的最大数字甚至不在 'aveg' 列中。

我想问一下我是采用了错误的方法还是遗漏了一些微不足道的东西。任何意见表示赞赏。

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