Lea*_*ner 5 scala apache-spark apache-spark-sql
我有一个包含这些值的DataFrame:
Dept_id | name | salary
1 A 10
2 B 100
1 D 100
2 C 105
1 N 103
2 F 102
1 K 90
2 E 110
Run Code Online (Sandbox Code Playgroud)
我想要这种形式的结果:
Dept_id | name | salary
1 N 103
1 D 100
1 K 90
2 E 110
2 C 105
2 F 102
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)。
该解决方案类似于检索顶部每组n一个数据帧的在pyspark中这是在pyspark
如果你在scala中做同样的事情,那么它应该如下
df.withColumn("rank", rank().over(Window.partitionBy("Dept_id").orderBy($"salary".desc)))
.filter($"rank" <= 3)
.drop("rank")
Run Code Online (Sandbox Code Playgroud)
我希望答案有帮助
| 归档时间: |
|
| 查看次数: |
3306 次 |
| 最近记录: |