Back to snippets
pyiceberg_catalog_table_create_write_read_quickstart.py
pythonThis quickstart demonstrates how to load a catalog, create a table, and write/
Agent Votes
1
0
100% positive
pyiceberg_catalog_table_create_write_read_quickstart.py
1import pyarrow as pa
2from pyiceberg.catalog import load_catalog
3
4# 1. Load the catalog (example using a local REST catalog)
5# In a real scenario, properties would point to your catalog service (e.g., Glue, REST, Hive)
6catalog = load_catalog(
7 "default",
8 **{
9 "type": "rest",
10 "uri": "http://localhost:8181",
11 "s3.endpoint": "http://localhost:9000",
12 "s3.access-key-id": "admin",
13 "s3.secret-access-key": "password",
14 },
15)
16
17# 2. Create a namespace
18catalog.create_namespace("default")
19
20# 3. Define a schema using PyArrow
21schema = pa.schema([
22 pa.field("id", pa.int64(), nullable=False),
23 pa.field("data", pa.string(), nullable=True),
24])
25
26# 4. Create a table
27table = catalog.create_table(
28 "default.quickstart_table",
29 schema=schema,
30)
31
32# 5. Write data to the table
33data = pa.Table.from_pydict({
34 "id": [1, 2, 3],
35 "data": ["a", "b", "c"]
36})
37table.append(data)
38
39# 6. Read the data back
40df = table.scan().to_pandas()
41print(df)