我有一个数据框
col_a | col_b | col_c | col_d | col_e
1 1 8/20/2018 12 24
1 1 8/19/2018 32 62
3 3 ..
4 4 ..
我按
分组grouped= df.groupBy("col_a", "col_b").agg(collect_list("col_c").alias("run_date"))
然后选择最高日期
sorted = grouped.withColumn("run_date", sort_array("run_date", asc=False))
most_recent = sorted.selectExpr("col_a", "col_b", "dates[0]")
但是,这将返回不含col_d
和col_e
现在,我可以返回并将这个新的most_recent数据框与原始数据框连接起来,以获取丢失的列值,因为a / b / c的组合将是唯一的。但这会增加不必要的计算费用。我可以完成我想做的事情而不会丢失col_d / col_e吗?