from __future__ import annotations
import robin_sparkless as rs
def _spark() -> rs.SparkSession:
return rs.SparkSession.builder().app_name("issue_411").get_or_create()
def test_posexplode_alias_in_select() -> None:
spark = _spark()
df = spark.createDataFrame(
[{"id": 1, "arr": [10, 20]}],
schema=[("id", "bigint"), ("arr", "list")],
)
out = df.select(rs.posexplode("arr").alias("pos", "val"))
rows = out.collect()
assert out.columns() == ["pos", "val"]
assert len(rows) == 2
assert rows[0] == {"pos": 1, "val": 10}
assert rows[1] == {"pos": 2, "val": 20}