from __future__ import annotations
import pytest
import robin_sparkless as rs
def _spark() -> rs.SparkSession:
return rs.SparkSession.builder().app_name("issue_419").get_or_create()
def _supports_single_column_schema() -> bool:
try:
spark = _spark()
spark.createDataFrame([1, 2, 3], "bigint")
return True
except (TypeError, Exception):
return False
@pytest.mark.skipif(
not _supports_single_column_schema(),
reason="Python binding does not yet support createDataFrame(data, single_type_str); Rust API create_dataframe_from_single_column is ready.",
)
def test_single_column_schema_bigint() -> None:
spark = _spark()
df = spark.createDataFrame([1, 2, 3], "bigint")
out = df.collect()
assert len(out) == 3
assert list(out[0].keys()) == ["value"]
assert [r["value"] for r in out] == [1, 2, 3]
@pytest.mark.skipif(
not _supports_single_column_schema(),
reason="Python binding does not yet support createDataFrame(data, single_type_str); Rust API create_dataframe_from_single_column is ready.",
)
def test_single_column_schema_string() -> None:
spark = _spark()
df = spark.createDataFrame(["a", "b"], "string")
out = df.collect()
assert len(out) == 2
assert [r["value"] for r in out] == ["a", "b"]