gpt4 book ai didi

pyspark - 使用 groupBy 在 Spark 列中获取模式(最常见)值

转载 作者:行者123 更新时间:2023-12-05 00:51:04 24 4
gpt4 key购买 nike

我有一个 SparkR DataFrame我想获得模式(最常见)value对于每个独特的 name .我怎样才能做到这一点?似乎没有内置 mode功能。 SparkR 或 PySpark 解决方案都可以。

#Create DF
df <- data.frame(name = c("Thomas", "Thomas", "Thomas", "Bill", "Bill", "Bill"),
value = c(5, 5, 4, 3, 3, 7))
DF <- createDataFrame(df)

name | value
-----------------
Thomas | 5
Thomas | 5
Thomas | 4
Bill | 3
Bill | 3
Bill | 9

#What I want to get
name | mode(value)
-----------------
Thomas | 5
Bill | 3

最佳答案

您可以使用 .groupBy() 的组合来实现这一点。和 window像这样的方法:

grouped = df.groupBy('name', 'value').count()
window = Window.partitionBy("name").orderBy(desc("count"))
grouped\
.withColumn('order', row_number().over(window))\
.where(col('order') == 1)\
.show()

输出:
+------+-----+-----+-----+
| name|value|count|order|
+------+-----+-----+-----+
| Bill| 3| 2| 1|
|Thomas| 5| 2| 1|
+------+-----+-----+-----+

关于pyspark - 使用 groupBy 在 Spark 列中获取模式(最常见)值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44806757/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com