группироватьПо

Группировать кадр данных по указанным столбцам, чтобы агрегирование можно было выполнять на них. Ознакомьтесь GroupedData со всеми доступными статистическими функциями.

Синтаксис

groupBy(*cols: "ColumnOrNameOrOrdinal")

Параметры

Параметр Тип Описание
cols list, str, int или 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|
# +-----+---+-----+