from __future__ import annotations
from tests.fixtures.spark_imports import get_spark_imports
_imports = get_spark_imports()
SparkSession = _imports.SparkSession
F = _imports.F
def test_array_empty_returns_empty_array_column() -> None:
spark = SparkSession.builder.appName("test_263").getOrCreate()
df = spark.createDataFrame(
[{"Name": "Alice"}, {"Name": "Bob"}],
["Name"],
)
df = df.withColumn("NewArray", F.array())
out = df.collect()
assert len(out) == 2
assert out[0]["Name"] == "Alice"
assert out[0]["NewArray"] == []
assert out[1]["Name"] == "Bob"
assert out[1]["NewArray"] == []
def test_array_empty_with_other_columns() -> None:
spark = SparkSession.builder.appName("test_263").getOrCreate()
df = spark.createDataFrame([{"x": 1}, {"x": 2}], ["x"])
df = df.withColumn("empty_arr", F.array()).withColumn("double", F.col("x") * 2)
out = df.collect()
assert [r["empty_arr"] for r in out] == [[], []]
assert [r["double"] for r in out] == [2, 4]