报告pyspark数据框中列的前3个最大值[重复]
Posted
技术标签:
【中文标题】报告pyspark数据框中列的前3个最大值[重复]【英文标题】:Report the top-3 maximum values of a column in pyspark dataframe [duplicate] 【发布时间】:2022-01-23 21:59:06 【问题描述】:我在 Spark 中有这个数据框:
我需要找到 PM10 的最大值,我用这段代码做到了:
max_value = df.agg("PM10": "max").show()
这个输出:
我想要相同的输出,但只选择 PM10 的 3 个最大值。 我尝试过使用 .collect() 和 .head(),但这绝对不是正确的方法。
谢谢。
【问题讨论】:
【参考方案1】:您可以使用orderBy
on PM10
降序排列数据框并应用limit
。
from pyspark.sql import functions as F
data = [("s1", "1/1/2016", 20.5,),
("s2", "1/1/2016", 30.1,),
("s1", "1/1/2016", 60.2,),
("s2", "1/1/2016", 20.4,),
("s1", "1/1/2016", 55.5,),
("s2", "1/1/2016", 52.5,), ]
df = spark.createDataFrame(data, ("sensorId", "date", "PM10", ))
df.select("PM10").orderBy(F.desc(F.col("PM10"))).limit(3).show()
输出
+----+
|PM10|
+----+
|60.2|
|55.5|
|52.5|
+----+
【讨论】:
以上是关于报告pyspark数据框中列的前3个最大值[重复]的主要内容,如果未能解决你的问题,请参考以下文章