Dhi*_*TdG 2 scala apache-spark apache-spark-sql spark-dataframe
我坚持使用与SPARK DataFrame类似的用例:选择每个组的第一行.唯一的区别是我需要选择每组的前3行.该agg功能允许我在功能的帮助下max或sort最初应用然后使用该first功能选择最高值.
有没有办法agg在做完后使用函数实现它groupby?如果没有,最好的方法是什么?
小智 6
import org.apache.spark.sql.functions.{row_number, max, broadcast}
import org.apache.spark.sql.expressions.Window
df=Dataframe....
val w = Window.partitionBy($"groupColumn").orderBy($"AnyColumn".desc)
val dfTop = df.withColumn("rn", row_number.over(w)).where($"rn" ===> 3).drop("rn")
dfTop.show
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6073 次 |
| 最近记录: |