メインコンテンツまでスキップ

グループ化ID

集計関数: グループ化のレベルを返します。 (grouping(c1) << (n-1)) + (grouping(c2) << (n-2)) + ... + grouping(cn)に等しくなります。

構文

Python
from pyspark.sql import functions as sf

sf.grouping_id(*cols)

パラメーター

パラメーター

Type

説明

cols

pyspark.sql.Column または文字列

確認する列。列のリストはグループ化列と完全に一致するか、空(グループ化列すべてを意味する)である必要があります。

戻り値

pyspark.sql.Column: 関連するグループのレベルを返します。

例1 : キューブ操作でグループ化IDを取得する

Python
from pyspark.sql import functions as sf
df = spark.createDataFrame(
[(1, "a", "a"), (3, "a", "a"), (4, "b", "c")], ["c1", "c2", "c3"])
df.cube("c2", "c3").agg(sf.grouping_id(), sf.sum("c1")).orderBy("c2", "c3").show()
Output
+----+----+-------------+-------+
| 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|
+----+----+-------------+-------+