그룹에서 가장 빈번한 값을 반환합니다.
문법
from pyspark.sql import functions as sf
sf.mode(col, deterministic=False)
매개 변수
| 매개 변수 | 유형 | Description |
|---|---|---|
col |
pyspark.sql.Column 또는 열 이름 |
계산할 대상 열입니다. |
deterministic |
bool, 선택 사항 | 동일한 빈도의 결과가 여러 번 있는 경우 가장 낮은 결과(기본값은 false)를 반환합니다. |
Returns
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|
+---------------------------------------+