Building any thing with F.expr() and calling .show() will fail, even though the generated sql is valid and works
Code
from sqlframe.duckdb import DuckDBDataFrame as DataFrame
from sqlframe.duckdb import DuckDBSession
from sqlframe.duckdb import functions as F
spark = DuckDBSession()
initial: DataFrame = spark.createDataFrame(
[
("data1", None),
("data2", "data3"),
],
["data_col", "another_col"],
)
expr_test: DataFrame = initial.select("*", F.col("data_col").alias("something"))
print(expr_test.sql())
print(expr_test.show())
error
SELECT
CAST("a1"."data_col" AS TEXT) AS "data_col",
"a1"."another_col" AS "another_col",
CAST("a1"."data_col" AS TEXT) AS "something"
FROM (VALUES
('data1', NULL),
('data2', 'data3')) AS "a1"("data_col", "another_col")
Traceback (most recent call last):
File "/workspaces/playground.py", line 19, in <module>
print(expr_test.show())
File "/workspaces/.venv/lib/python3.10/site-packages/sqlframe/base/dataframe.py", line 1560, in show
table.add_row(list(row))
File "/workspaces/.venv/lib/python3.10/site-packages/prettytable/prettytable.py", line 1413, in add_row
raise ValueError(msg)
ValueError: Row has incorrect number of values, (actual) 4!=3 (expected)
It does the same on every pattern of .select("*", a column expression)
This one is interesting.
Building any thing with F.expr() and calling .show() will fail, even though the generated sql is valid and works
Code
error
It does the same on every pattern of .select("*", a column expression)