grouping_id(*cols)
Описание
Функция grouping_id() возвращает уровень группировки, который представляет собой битовую маску, показывающую, какие колонки были агрегированы в GROUP BY. Каждый бит в результате соответствует одной колонке в порядке их указания.
Параметры
*cols: Column - колонки для проверки агрегации
Возвращаемое значение
Integer - битовая маска, где каждый бит соответствует агрегации колонки
Пример использования
from pyspark.sql.functions import grouping_id, sum
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("grouping_id_example").getOrCreate()
# Создаем DataFrame
data = [
    ("A", "X", 1),
    ("A", "Y", 2),
    ("B", "X", 3),
    ("B", "Y", 4)
]
df = spark.createDataFrame(data, ["group1", "group2", "value"])
# Используем grouping_id для проверки агрегации
result = df.groupBy("group1").agg(
    sum("value").alias("sum_value"),
    grouping_id("group1", "group2").alias("grouping_level")
).show()
# Результат:
# +------+---------+--------------+
# |group1|sum_value|grouping_level|
# +------+---------+--------------+
# |A     |3        |1             |
# |B     |7        |1             |
# +------+---------+--------------+
 Примечания
- Каждый бит в результате соответствует одной колонке в порядке их указания
 - Бит равен 1, если колонка агрегирована, и 0, если нет
 - Для проверки агрегации отдельной колонки используйте 
grouping() - Уровень группировки можно использовать для определения типа агрегации в CUBE или ROLLUP