モード
グループ内で最も頻繁に出現する値を返します。
構文
Python
from pyspark.sql import functions as sf
sf.mode(col, deterministic=False)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| ターゲットカラムをコンピュートに。 |
| 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|
+---------------------------------------+