from __future__ import annotations
def test_create_dataframe_from_rows_schema_list(spark) -> None:
data = [{"name": "a", "vals": [1, 2, 3]}]
df = spark.createDataFrame(data, "name string, vals array<int>")
out = df.collect()
assert len(out) == 1
assert out[0]["name"] == "a"
assert out[0]["vals"] == [1, 2, 3]
def test_create_dataframe_from_rows_schema_array(spark) -> None:
data = [{"name": "b", "vals": [10, 20]}]
df = spark.createDataFrame(data, "name string, vals array<int>")
out = df.collect()
assert len(out) == 1
assert out[0]["name"] == "b"
assert out[0]["vals"] == [10, 20]
def test_create_dataframe_from_rows_list_null_and_multiple_rows(spark) -> None:
data = [
{"id": 1, "vals": [1, 2]},
{"id": 2, "vals": None},
{"id": 3, "vals": []},
]
df = spark.createDataFrame(data, "id bigint, vals array<int>")
out = df.collect()
assert len(out) == 3
assert out[0]["vals"] == [1, 2]
assert out[1]["vals"] is None
assert out[2]["vals"] == []