Verify the write.data.path in the CREATE TABLE statement matches the beginning of the storage_location in the CREATE DATALAKE statement. For example:
CREATE DATALAKE ICEBERG_GLUE EXTERNAL SECURITY CATALOG iceberg_auth EXTERNAL SECURITY STORAGE iceberg_auth USING catalog_type ('glue') catalog_location ('s3://test-us-west-2/nyc-taxi') storage_location ('s3://test-us-west-2/nyc-taxi') storage_region ('us-west-2') external_id ('aws-glue-iceberg-otf') TABLE FORMAT iceberg; CREATE TABLE ICEBERG_GLUE.TMPDB2.TMPTBL1 ( c1 VARCHAR(50) NOT NULL, c2 INT, dt TIMESTAMP(6), country VARCHAR(50) ) PARTITIONED BY (YEAR(dt), country) SORTED BY c1 ASC, c2 DESC TBLPROPERTIES( 'write.format.default'='parquet', 'write.data.path'='s3://test-us-west-2/nyc-taxi/otf_tab1/');
Before the September 2024 drop, the storage_location in the CREATE DATALAKE must contain a path. For example:
CREATE DATALAKE ICEBERG_GLUE EXTERNAL SECURITY CATALOG iceberg_auth EXTERNAL SECURITY STORAGE iceberg_auth USING catalog_type ('glue') catalog_location ('s3://test-us-west-2/<path>') storage_location ('s3://test-us-west-2/<path>') storage_region ('us-west-2') external_id ('aws-glue-iceberg-otf') TABLE FORMAT iceberg;
The following CREATE DATALAKE statement is created without a <path> can cause the result in the “Specified bucket does not exist” error when creating tables.
CREATE DATALAKE ICEBERG_GLUE EXTERNAL SECURITY CATALOG iceberg_auth EXTERNAL SECURITY STORAGE iceberg_auth USING catalog_type ('glue') catalog_location ('s3://test-us-west-2') storage_location ('s3://test-us-west-2') storage_region ('us-west-2') external_id ('aws-glue-iceberg-otf') TABLE FORMAT iceberg;