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/');
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;