返回组中最常见的值。
Syntax
from pyspark.sql import functions as sf
sf.mode(col, deterministic=False)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或列名 |
要计算的目标列。 |
deterministic |
bool,可选 | 如果有多个同样频繁的结果,则返回最低结果(默认值为 false)。 |
退货
pyspark.sql.Column:组中最常见的值。
例子
from pyspark.sql import functions as sf
df = spark.createDataFrame([
("Java", 2012, 20000), ("dotNET", 2012, 5000),
("Java", 2012, 20000), ("dotNET", 2012, 5000),
("dotNET", 2013, 48000), ("Java", 2013, 30000)],
schema=("course", "year", "earnings"))
df.groupby("course").agg(sf.mode("year")).sort("course").show()
+------+----------+
|course|mode(year)|
+------+----------+
| Java| 2012|
|dotNET| 2012|
+------+----------+
当多个值具有相同的最大频率时,如果确定性为 false 或未定义值,则返回任何值;如果确定性为 true,则返回最小值。
from pyspark.sql import functions as sf
df = spark.createDataFrame([(-10,), (0,), (10,)], ["col"])
df.select(sf.mode("col", True)).show()
+---------------------------------------+
|mode() WITHIN GROUP (ORDER BY col DESC)|
+---------------------------------------+
| -10|
+---------------------------------------+