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

グループ分け

指定された列でDataFrameを分割し、集計処理を実行できるようにします。 利用可能な集計関数の一覧については、 GroupedDataを参照してください。

構文

groupBy(*cols: "ColumnOrNameOrOrdinal")

パラメーター

パラメーター

Type

説明

cols

リスト、文字列、整数、または列

グループ化の基準となる列。各要素は、列名(文字列)、式(Column)、列の順序番号(整数、1から始まる)、またはそれらのリストのいずれかになります。

戻り値

GroupedData: 指定された列によってグループ化されたデータを表す GroupedData オブジェクト。

注意

列の序数は 1 から始まりますが、これは 0 から始まる__getitem__とは異なります。

Python
df = spark.createDataFrame([
("Alice", 2), ("Bob", 2), ("Bob", 2), ("Bob", 5)], schema=["name", "age"])

df.groupBy().avg().show()
# +--------+
# |avg(age)|
# +--------+
# | 2.75|
# +--------+

df.groupBy("name").agg({"age": "sum"}).sort("name").show()
# +-----+--------+
# | name|sum(age)|
# +-----+--------+
# |Alice| 2|
# | Bob| 9|
# +-----+--------+

df.groupBy(df.name).max().sort("name").show()
# +-----+--------+
# | name|max(age)|
# +-----+--------+
# |Alice| 2|
# | Bob| 5|
# +-----+--------+

df.groupBy(["name", df.age]).count().sort("name", "age").show()
# +-----+---+-----+
# | name|age|count|
# +-----+---+-----+
# |Alice| 2| 1|
# | Bob| 2| 2|
# | Bob| 5| 1|
# +-----+---+-----+