После того, как я вычисляю среднее количество в пределах 5 строк для каждой строки в фрейме данных pyspark с помощью окна и разделения по группе столбцов
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'))
Однако при отладке я вижу, что рассчитанные максимальные значения неверны. Для конкретных экземпляров c я видел, что извлеченные максимальные числа даже не указаны в столбце «aveg».
Я хотел бы спросить, ошибаюсь ли я или упускаю что-то тривиальное. Любые комментарии приветствуются.