В spark есть два способа присоединить его к предыдущему фрейму данных, например:
a=df.groupby(df['id']).agg({"date": "max"}
df = df.join(
a,
on = "id",
how = "inner"
)
df.show()
или используйте раздел окна следующим образом:
from pyspark.sql import Window
import pyspark.sql.functions as F
window = Window.partitionBy("id")
a = df.withColumn(
(F.max(F.col("date")).over(window)).alias("max")
)
a.show()
Я бы сказал, что предпочитаю первый, так как он дешевле, даже после объединения.