amazon-athena - AWS Glue 爬网程序需要从许多具有相同架构的文件中创建一张表

标签 amazon-athena aws-glue

我们在 S3 中有非常多的文件夹和文件,都在一个特定的文件夹下,我们想抓取所有 CSV 文件,然后从 Athena 中的一张表中查询它们。 CSV 文件都具有相同的架构。问题是爬虫为每个文件生成一个表,而不是一个表。爬虫配置有一个复选框选项“为每个 S3 路径创建一个模式”,但这似乎没有任何作用。

我需要的可能吗?谢谢。

最佳答案

胶水爬虫号称能解决很多问题,但实际上解决的问题很少。如果你稍微超出了他们为你设计的范围,那你就不走运了。可能有一种方法可以将其配置为执行您想要的操作,但根据我的经验,试图让 Glue 爬虫执行与它不完全一致的事情是不值得的。

听起来您很清楚数据的架构是什么。在这种情况下,Glue 爬虫也提供很少的值(value)。您可能比 Glue 永远无法弄清楚架构应该是什么样子更清楚。

我建议您手动创建表,并编写一个一次性脚本,列出要包含在表中的 S3 上的所有分区位置并生成 ALTER TABLE ADD PARTITION … SQL 或 Glue API 调用将这些分区添加到表中。

要在添加新分区位置时使表保持最新,请查看此答案以获得指导:https://stackoverflow.com/a/56439429/1109

关于amazon-athena - AWS Glue 爬网程序需要从许多具有相同架构的文件中创建一张表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54332699/

相关文章:

json - 来自字符串字段的 AWS Athena json_extract 查询返回空值

sql - CASE 语句和 GROUP BY 子句中的聚合函数错误

amazon-web-services - 如何在 AWS Glue/Athena 上使用 AVRO 格式

python - 通过代码使粘合作业失败(即手动)

python - Boto3 Glue 客户端对象上缺少 list_schemas() 方法

dataframe - 具有多种数据类型的 Pyspark SQL 数据框映射

amazon-athena - 如何将带有 NULL 值的引用 CSV 读入 Amazon Athena

sql - 递归跟踪状态数量未知的客户状态(Presto SQL)

datediff - 雅典娜DateDiff

amazon-web-services - AWS Glue - CRON 计划触发器