通过


mode

返回组中最常见的值。

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|
+---------------------------------------+