Я работаю с устаревшим кодом Spark SQL следующим образом:
SELECT
column1,
max(column2),
first_value(column3),
last_value(column4)
FROM
tableA
GROUP BY
column1
ORDER BY
columnN
Я переписываю его в PySpark, как показано ниже
df.groupBy(column1).agg(max(column2), first(column3), last(column4)).orderBy(columnN)
Когда я сравниваю два результаты Я вижу различия в полях, сгенерированных функциями first_value / first и last_value / last.
Они ведут себя недетерминированно c при использовании вне оконных функций? Можно ли объединять агрегаты groupBy с оконными функциями?