에서 만든 DataFrame.groupByDataFrame의 집계에 대한 메서드 집합입니다.
Spark Connect 지원
문법
DataFrame.groupBy(*cols)
메서드
| 메서드 | 설명 |
|---|---|
agg(*exprs) |
집계를 계산하고 결과를 DataFrame으로 반환합니다. 함수 이름을 집계하기 위한 사전 매핑 열 이름 또는 집계 열 식 목록을 허용합니다. |
avg(*cols) |
각 그룹의 각 숫자 열에 대한 평균 값을 계산합니다.
mean 는 별칭입니다. |
count() |
각 그룹의 레코드 수를 계산합니다. |
max(*cols) |
각 그룹의 각 숫자 열에 대한 최대값을 계산합니다. |
mean(*cols) |
각 그룹의 각 숫자 열에 대한 평균 값을 계산합니다.
avg 는 별칭입니다. |
min(*cols) |
각 그룹의 각 숫자 열에 대한 최소값을 계산합니다. |
pivot(pivot_col, values) |
현재 DataFrame의 열을 피벗하고 지정된 집계를 수행합니다. |
sum(*cols) |
각 그룹의 각 숫자 열에 대한 합계를 계산합니다. |
예제
df = spark.createDataFrame(
[(2, "Alice"), (3, "Alice"), (5, "Bob"), (10, "Bob")], ["age", "name"])
df.groupBy("name").count().sort("name").show()
+-----+-----+
| name|count|
+-----+-----+
|Alice| 2|
| Bob| 2|
+-----+-----+
from pyspark.sql import functions as sf
df.groupBy("name").agg(sf.min("age")).sort("name").show()
+-----+--------+
| name|min(age)|
+-----+--------+
|Alice| 2|
| Bob| 5|
+-----+--------+
df.groupBy("name").avg("age").sort("name").show()
+-----+--------+
| name|avg(age)|
+-----+--------+
|Alice| 2.5|
| Bob| 7.5|
+-----+--------+
from pyspark.sql import Row
df1 = spark.createDataFrame([
Row(course="dotNET", year=2012, earnings=10000),
Row(course="Java", year=2012, earnings=20000),
Row(course="dotNET", year=2013, earnings=48000),
Row(course="Java", year=2013, earnings=30000),
])
df1.groupBy("year").pivot("course", ["dotNET", "Java"]).sum("earnings").sort("year").show()
+----+------+-----+
|year|dotNET| Java|
+----+------+-----+
|2012| 10000|20000|
|2013| 48000|30000|
+----+------+-----+