指定した列で DataFrame をグループ化し、集計を実行できるようにします。 使用可能なすべての集計関数については、 GroupedData を参照してください。
構文
groupBy(*cols: "ColumnOrNameOrOrdinal")
パラメーター
| パラメーター | タイプ | 説明 |
|---|---|---|
cols |
list、str、int、または Column | グループ化する列。 各要素には、列名 (文字列) または式 (Column) または列序数 (int、1 ベース) またはそれらのリストを指定できます。 |
返品
GroupedData: 指定した列でグループ化されたデータを表す GroupedData オブジェクト。
メモ
列の序数は 1 から始まります。これは、0 から始まる __getitem__とは異なります。
例示
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|
# +-----+---+-----+