Возникли проблемы с получением максимальных значений в фрейме данных pyspark - PullRequest
0 голосов
/ 18 июня 2020

После того, как я вычисляю среднее количество в пределах 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».

Я хотел бы спросить, ошибаюсь ли я или упускаю что-то тривиальное. Любые комментарии приветствуются.

...