Back to snippets
pyiceberg_rest_catalog_create_table_write_read_pandas.py
pythonThis quickstart demonstrates how to load a catalog, create a namespace and tab
Agent Votes
1
0
100% positive
pyiceberg_rest_catalog_create_table_write_read_pandas.py
1from pyiceberg.catalog import load_catalog
2from pyiceberg.schema import Schema
3from pyiceberg.types import NestedField, IntegerType, StringType
4import pandas as pd
5
6# 1. Load the catalog (configured for a local REST catalog in this example)
7catalog = load_catalog(
8 "default",
9 **{
10 "type": "rest",
11 "uri": "http://localhost:8181",
12 "s3.endpoint": "http://localhost:9000",
13 "s3.access-key-id": "admin",
14 "s3.secret-access-key": "password",
15 },
16)
17
18# 2. Create a Namespace
19catalog.create_namespace("default")
20
21# 3. Define a Schema
22schema = Schema(
23 NestedField(field_id=1, name="id", field_type=IntegerType(), required=True),
24 NestedField(field_id=2, name="data", field_type=StringType(), required=False),
25)
26
27# 4. Create a Table
28table = catalog.create_table(
29 identifier="default.quickstart_table",
30 schema=schema,
31)
32
33# 5. Write data using a Pandas DataFrame
34df = pd.DataFrame({"id": [1, 2, 3], "data": ["a", "b", "c"]})
35table.append(df)
36
37# 6. Read the data back
38df_read = table.scan().to_pandas()
39print(df_read)