按指定列对数据帧进行分组,以便可以对它们执行聚合。 请参阅 GroupedData 所有可用的聚合函数。
Syntax
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|
# +-----+---+-----+