在pyspark中有一个DataFrame,数据如下:
user_id object_id score
user_1 object_1 3
user_1 object_1 1
user_1 object_2 2
user_2 object_1 5
user_2 object_2 2
user_2 object_2 6
我希望每组返回相同用户ID的2条记录,并且这些记录需要具有最高分数。因此,结果应如下所示:
user_id object_id score
user_1 object_1 3
user_1 object_2 2
user_2 object_2 6
user_2 object_1 5
我对pyspark很陌生,有人能提供一段代码片段或相关文档的链接吗?非常感谢!
groupby
或top
过程都没有影响。而我想要的是按user_id进行分组,在每个组中,分别检索前两条最高分记录,而不仅仅是第一条记录。非常感谢! - KAsdf.filter(rank().over(window) <= 2)
- Wilmertonrow_number
而不是rank
。 - Tomer Ben David