Freigeben über


groupBy

Gruppiert den DataFrame nach den angegebenen Spalten, sodass die Aggregation für sie ausgeführt werden kann. Alle verfügbaren Aggregatfunktionen finden Sie unter.See GroupedData for all the available aggregate functions.

Syntax

groupBy(*cols: "ColumnOrNameOrOrdinal")

Parameter

Parameter Typ Beschreibung
cols list, str, int oder Column Die Spalten, nach der gruppiert werden sollen. Jedes Element kann ein Spaltenname (Zeichenfolge) oder ein Ausdruck (Column) oder ein Spalten-Ordinal (int, 1-basiert) oder eine Liste davon sein.

Rückkehr

GroupedData: Ein GroupedData -Objekt, das die gruppierten Daten nach den angegebenen Spalten darstellt.

Hinweise

Eine Spalten-Ordnungszahl beginnt von 1, die sich von der 0-basierten __getitem__unterscheidet.

Beispiele

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