使用 Glue + Delta Lake 在 S3 中创建 Delta 表会创建位置错误的glue 目录表

问题描述 投票:0回答:1

我正在使用 Delta Lake 框架使用 Glue 创建 ETL 作业。示例演示数据定义为:

data = {'visitor': ['foo', 'bar', 'baz'], 
         'id': [1, 2, 3],
         'B': [1, 0, 1],
         'C': [1, 0, 0]}

我使用以下代码行将其保存到增量表中:

df = pd.DataFrame(data)
dataFrame = spark.createDataFrame(df)

dataFrame.write \
    .format("delta") \
    .mode("overwrite") \
    .option("path", "s3://example-bucket/deltalake_test/") \
    .saveAsTable("example-db.deltalake_test_delta")

作业完成后,Glue Catalog 中创建了一个表,但位置错误,其中包含:

__PLACEHOLDER__

附加在所提供位置末尾的字符串。这是 Glue+data Lake 的问题还是我配置错误?由于位置错误,表在 Athena 中也无法查询。

amazon-s3 aws-glue amazon-athena delta-lake
1个回答
0
投票

我也遇到了同样的问题。检查 Glue Catalog 中数据库的位置。 确保它不仅仅是 s3://bucket-name。应该是 s3://bucket-name/path

© www.soinside.com 2019 - 2024. All rights reserved.