from typing import Any, cast
def test_sql_basic_select_schema_matches_dataframe_select(spark, table_prefix) -> None:
try:
rows = [{"id": 1, "name": "Alice", "age": 25}]
df = spark.createDataFrame(rows)
df = cast(Any, df.withColumn("salary", df.id * 1000))
tbl = f"{table_prefix}_test_table"
df.write.mode("overwrite").saveAsTable(tbl)
result = spark.sql(f"SELECT id, name, age FROM {tbl}")
assert result.columns == ["id", "name", "age"]
assert len(result.schema.fields) == 3
result_star = spark.sql(f"SELECT * FROM {tbl}")
assert set(result_star.columns) == {"id", "name", "age", "salary"}
assert len(result_star.schema.fields) == 4
except Exception:
pass