| name | oleander-iceberg-catalog |
| description | Patterns for reading and writing oleander Iceberg catalog tables in Spark jobs, including naming conventions, write modes, and catalog hierarchy. |
oleander Iceberg Catalog
Use this skill when reading from or writing to the oleander Iceberg catalog in a Spark job.
Catalog hierarchy
Tables are addressed as catalog.namespace.table:
- catalog: always
oleander for the managed Lakekeeper-backed catalog
- namespace: a logical grouping (e.g.,
default, san_francisco, my_org)
- table: the table name
By default, default and telemetry namespaces are available out of the box. The telemetry namespace contains oleander-managed data you can query directly (for example oleander.telemetry.run_events, oleander.telemetry.traces, and oleander.telemetry.logs).
Examples:
oleander.default.sf_311
oleander.san_francisco.district_stats
oleander.my_namespace.results
Reading tables
Use spark.table() with the fully qualified name:
df = spark.table("oleander.default.sf_311")
Never construct table paths as raw S3 URIs. Always use the catalog name so Iceberg metadata and lineage are tracked correctly.
Writing tables
Append (add rows to an existing or new table):
df.writeTo("oleander.my_namespace.my_table").append()