- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-03-2025 10:50 AM
Databricks doesn’t support the LOCATION clause for Iceberg in Unity Catalog; Iceberg tables must be created as managed tables without a path, or read via a foreign catalog. Trying USING iceberg LOCATION 's3://...' triggers “Managed Iceberg tables do not support REPLACE on external tables.” because path-based external Iceberg tables aren’t supported in UC.
With Iceberg, the metadata file path changes on every commit; connecting by a fixed storage location (path) is not the right way to load the table, which is why UC requires a catalog-based approach rather than a LOCATION-based external table.
Some recommendations would be:
-
If you need governed read/write from Databricks and external engines, create a Managed Iceberg table in UC (no LOCATION) and connect your external Spark job to UC via the Iceberg REST Catalog.
-
If you only need to read the existing table and it’s in Glue/HMS, set it up as Foreign Iceberg via federation, and CTAS into a managed table if you later need writes in Databricks.
-
If your requirement is “external table by path,” note that this is supported for Delta external tables, but not for Iceberg in UC.