pyspark.sql.functions.grouping_id

pyspark.sql.functions. grouping_id ( * cols : ColumnOrName ) → pyspark.sql.column.Column [source]

聚合函数:返回分组的级别,等于

(grouping(c1) << (n-1)) + (grouping(c2) << (n-2)) + … + grouping(cn)

新增于版本 2.0.0。

在版本 3.4.0 中更改: 支持 Spark Connect。

Parameters
cols or str

要检查的列。

Returns

返回与其相关的分组级别。

注释

列的列表应与分组列完全匹配,或为空(表示所有分组列)。

示例

>>> df = spark.createDataFrame([(1, "a", "a"),
...                             (3, "a", "a"),
...                             (4, "b", "c")], ["c1", "c2", "c3"])
>>> df.cube("c2", "c3").agg(grouping_id(), sum("c1")).orderBy("c2", "c3").show()
+----+----+-------------+-------+
|  c2|  c3|grouping_id()|sum(c1)|
+----+----+-------------+-------+
|NULL|NULL|            3|      8|
|NULL|   a|            2|      4|
|NULL|   c|            2|      4|
|   a|NULL|            1|      4|
|   a|   a|            0|      4|
|   b|NULL|            1|      4|
|   b|   c|            0|      4|
+----+----+-------------+-------+