我正在尝试创建一个胶水爬行器来爬行特定的路径模式。我有以下路径:
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.gz
和bucket/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)中排除的文件