我有一个用作 Kinesis Firehose 流目的地的存储桶。
Firehose 使用 yyyy/mm/dd/HH
自动在该存储桶上创建基于日期的前缀格式。
然后我创建了一个爬虫,它会在这个存储桶中搜索数据并将其配置如下:
运行爬虫后,它会创建一个具有以下架构的表:
| # | Column name | Data type | Key |
| --- | ----------- | --------- | ------------- |
| 1 | numberissues | int | |
| 2 | group | string | |
| 3 | createdat | string | |
| 4 | companyunitid | string | |
| 5 | partition_0 | string | Partition (0) |
| 6 | partition_1 | string | Partition (1) |
| 7 | partition_2 | string | Partition (2) |
| 8 | partition_3 | string | Partition (3) |
如果我重命名
partition-*
给他们正确的同行 year
, month
, day
和 hour
,该表已准备好供我使用。但是,如果爬网程序再次运行,架构会将列名恢复为原始
partition-*
。 .我知道这适用于 Hive 分区模式
year=2018/month=04...
,但我想知道是否可以“提示” Glue 关于分区字段名称。另一种选择是尝试更改 Firehose 前缀,但我找不到任何表明这是可能的。
最佳答案
在这种情况下,您可以设置“忽略更改并且不更新数据目录”选项。
然后您可以重命名列。这将允许爬虫在下次运行时检测新分区,但保留重命名的名称。
关于amazon-athena - 如何更改由 Glue Crawler 创建的自动检测分区的列名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49699727/