グループ内で最も頻繁に使用される値を返します。
構文
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|
+---------------------------------------+