小编lak*_*lak的帖子

如何在保留整行的同时获得具有最大值的单行?

我想为每个 id 获取单行,其中仅存在 Charge 列的最大值。

示例输入数据:

id  name charge 
11  hg   10    
11  mm   20
22  aa   40
22  bb   40
Run Code Online (Sandbox Code Playgroud)

我试过的代码:

df.agg(max("charge"))
Run Code Online (Sandbox Code Playgroud)

我只得到最大值,如下所示:

charge
40   
Run Code Online (Sandbox Code Playgroud)

但是,我想保留整行:

id  name charge
11  mm   20
22  aa   40
22  bb   40
Run Code Online (Sandbox Code Playgroud)

如何保留前两列?name 列对于相同的 id 可以有不同的值,因此不可能groupBy在这两个列上使用并聚合结果。

如果两行具有相同的 id 并收费,则应保留两行。

scala apache-spark apache-spark-sql spark-dataframe

0
推荐指数
1
解决办法
9456
查看次数