次の方法で共有


mode

グループ内で最も頻繁に使用される値を返します。

構文

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