PyIceberg

Statusverified
Readsyes
Writesyes (format version 2)
Iceberg v3reads; cannot write
Geometry, geographyno (reads schema and counts only)
Last verified2026-10-03 (PyIceberg 0.12)

Connect

from pyiceberg.catalog.rest import RestCatalog
catalog = RestCatalog(name='lhbox', uri='https://catalog.lakehousebox.com',
                      warehouse='s3://<handle>--<catalog>/', credential='<client_id>:<client_secret>',
                      **{'s3.endpoint': 'https://s3.lakehousebox.com', 's3.path-style-access': 'true'})
table = catalog.load_table(('<namespace>', '<table>'))

# writing: create from an Arrow schema, then append
import pyarrow.parquet as pq
arrow = pq.read_table('cities.parquet')
tbl = catalog.create_table(('demo', 'cities'), schema=arrow.schema)
tbl.append(arrow)

PyIceberg writes one data file per append and a complete snapshot summary; DuckDB splits large writes into several files. Both are read identically by either engine.

Using PyIceberg with LakehouseBox and found something missing, wrong or out of date here? Write to hello@lakehousebox.com: what you ran, the version, and what happened. Product names and logos are trademarks of their owners; their use here does not imply endorsement.