glue crawler中排除的文件夹在Athena中抛出HIVE_BAD_DATA错误



我正在尝试创建一个胶水爬行器来爬行特定的路径模式。我有以下路径:

bucket/inference/2022/04/28/modelling/metadata.tar.gz
bucket/inference/2022/04/28/prediction/predictions.parquet
bucket/inference/2022/04/28/extract/data.parquet

同样的模式每天重复,即我们有上面的

bucket/inference/2022/04/29/*
bucket/inference/2022/04/30/*

我只想每天抓取**/predictions文件夹中的内容。我已经设置了一个指向bucket/inference/的胶水爬行器,并具有以下排除模式:

**/modelling/**
**/extract/**

日志正确地显示bucket/inference/2022/04/28/modelling/metadata.tar.gzbucket/inference/2022/04/28/extract/data.parquet文件被排除,DDL元数据显示它在数据中拾取正确的对象和行数。

然而,当我去SELECT *在雅典娜,我得到以下错误:

HIVE_BAD_DATA: Not valid Parquet file: s3://bucket/inference/2022/04/28/modelling/metadata.tar.gz expected magic number: PAR1

我已经尝试了上述排除模式的每一个组合,但它似乎总是在建模文件夹中拾取什么,尽管日志明确地排除了它。我遗漏了什么吗?

许多谢谢。

这是雅典娜的一个已知问题。来自AWS故障排除文档:

Athena不识别您在AWS Glue爬虫中指定的排除模式。例如,如果您有一个Amazon S3 bucket,其中包含.csv和.json文件,并且您将.json文件从爬虫中排除,那么Athena将查询这两组文件。要避免这种情况,请将要排除的文件放在不同的位置。

参考:Athena读取我从AWS Glue爬虫(AWS)中排除的文件

最新更新