我有一个 3 列的 PySpark 数据框架。有些行在 2 列中相似,但在第三列中不相似,请参见下面的示例。
----------------------------------------
first_name | last_name | requests_ID |
----------------------------------------
Joe | Smith |[2,3] |
----------------------------------------
Joe | Smith |[2,3,5,6] |
----------------------------------------
Jim | Bush |[9,7] |
----------------------------------------
Jim | Bush |[21] |
----------------------------------------
Sarah | Wood |[2,3] |
----------------------------------------
我想根据 {first_name, last_name} 列对行进行分组,并且只有 {requests_ID} 数量最多的行。所以结果应该是:
----------------------------------------
first_name | last_name | requests_ID |
----------------------------------------
Joe | Smith |[2,3,5,6] |
----------------------------------------
Jim | Bush |[9,7] |
----------------------------------------
Sarah | Wood |[2,3] |
----------------------------------------
我尝试了以下不同的事情,但它为我提供了 group-by 中两行的嵌套数组,而不是最长的。
gr_df = filtered_df.groupBy("first_name", "last_name").agg(F.collect_set("requests_ID").alias("requests_ID"))
这是我得到的结果:
----------------------------------------
first_name | last_name | requests_ID |
----------------------------------------
Joe | Smith |[[9,7],[2,3,5,6]]|
----------------------------------------
Jim | Bush |[[9,7],[21]] |
----------------------------------------
Sarah | Wood |[2,3] |
----------------------------------------
呼唤远方
哈士奇WWW
相关分类