分组和过滤pyspark数据帧并丢失一些行

时间:2018-08-20 15:09:52

标签: python apache-spark pyspark

我有一个数据框

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_dcol_e

的列表

现在,我可以返回并将这个新的most_recent数据框与原始数据框连接起来,以获取丢失的列值,因为a / b / c的组合将是唯一的。但这会增加不必要的计算费用。我可以完成我想做的事情而不会丢失col_d / col_e吗?

0 个答案:

没有答案