from __future__ import annotations
from tests.fixtures.spark_imports import get_spark_imports
_imports = get_spark_imports()
F = _imports.F
def test_rollup_two_columns_variadic(spark) -> None:
df = spark.createDataFrame(
[{"a": 1, "b": 2, "v": 10}, {"a": 1, "b": 2, "v": 20}],
["a", "b", "v"],
)
out = df.rollup("a", "b").agg(F.count(F.col("v")).alias("count")).collect()
assert len(out) >= 1
assert all("count" in r for r in out)
def test_rollup_single_list(spark) -> None:
df = spark.createDataFrame(
[{"a": 1, "b": 2, "v": 10}],
["a", "b", "v"],
)
out = df.rollup(["a", "b"]).agg(F.count(F.col("v")).alias("count")).collect()
assert len(out) >= 1