メインコンテンツまでスキップ

モード

グループ内で最も頻繁に出現する値を返します。

構文

Python
from pyspark.sql import functions as sf

sf.mode(col, deterministic=False)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または列名

ターゲットカラムをコンピュートに。

deterministic

bool、オプション

同じ頻度の結果が複数ある場合は、最も低い結果を返します (デフォルトは false)。

戻り値

pyspark.sql.Column: グループ内で最も頻繁に出現する値。

Python
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()
Output
+------+----------+
|course|mode(year)|
+------+----------+
| Java| 2012|
|dotNET| 2012|
+------+----------+

複数の値が同じ最大頻度を持つ場合、deterministic が false または定義されていない場合はいずれかの値が返され、deterministic が true の場合は最も低い値が返されます。

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame([(-10,), (0,), (10,)], ["col"])
df.select(sf.mode("col", True)).show()
Output
+---------------------------------------+
|mode() WITHIN GROUP (ORDER BY col DESC)|
+---------------------------------------+
| -10|
+---------------------------------------+