grihabor opened a new issue, #1265:
URL: https://github.com/apache/iceberg-python/issues/1265
### Apache Iceberg version
0.7.1 (latest release)
### Please describe the bug 🐞
After updating pyarrow from 17.0.0 to 18.0.0, I've got this error:
```python
Traceback (most recent call last):
File
"/home/grihabor/projects/playground/pyiceberg-pyarrow-schema/./run.py", line
38, in <module>
tbl = catalog.create_table(
^^^^^^^^^^^^^^^^^^^^^
File
"/home/grihabor/projects/playground/pyiceberg-pyarrow-schema/.venv/pyarrow-18/lib/python3.12/site-packages/pyiceberg/catalog/sql.py",
line 193, in create_table
schema: Schema = self._convert_schema_if_needed(schema) # type: ignore
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File
"/home/grihabor/projects/playground/pyiceberg-pyarrow-schema/.venv/pyarrow-18/lib/python3.12/site-packages/pyiceberg/catalog/__init__.py",
line 732, in _convert_schema_if_needed
raise ValueError(f"{type(schema)=}, but it must be
pyiceberg.schema.Schema or pyarrow.Schema")
ValueError: type(schema)=<class 'pyarrow.lib.Schema'>, but it must be
pyiceberg.schema.Schema or pyarrow.Schema
```
### Steps to reproduce
`run.py` script:
```python
import shutil
from pyiceberg.catalog.sql import SqlCatalog
from pathlib import Path
import pyarrow as pa
warehouse_path = Path("/tmp/warehouse")
if warehouse_path.exists():
shutil.rmtree(warehouse_path)
Path(warehouse_path).mkdir()
catalog = SqlCatalog(
"default",
**{
"uri": f"sqlite:///{warehouse_path}/pyiceberg_catalog.db",
"warehouse": f"file://{warehouse_path}",
},
)
df = pa.Table.from_pylist(
mapping=[
{"city": "Amsterdam", "lat": 52.371807, "long": 4.896029},
{"city": "San Francisco", "lat": 37.773972, "long": -122.431297},
{"city": "Drachten", "lat": 53.11254, "long": 6.0989},
{"city": "Paris", "lat": 48.864716, "long": 2.349014},
],
schema=pa.schema(
[
("city", pa.large_string()),
("lat", pa.float64()),
("long", pa.float64()),
]
),
)
catalog.create_namespace("db")
tbl = catalog.create_table(
identifier="db.cities",
schema=df.schema,
)
tbl.overwrite(df)
print(tbl.scan().to_arrow())
```
This works:
```bash
uv venv --python 3.12 .venv/pyarrow-17
source .venv/pyarrow-17/bin/activate
uv pip install pyiceberg pyarrow==17.0.0 sqlalchemy
python ./run.py
```
This throws the exception:
```bash
uv venv --python 3.12 .venv/pyarrow-18
source .venv/pyarrow-18/bin/activate
uv pip install pyiceberg pyarrow==18.0.0 sqlalchemy
python ./run.py
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]