我有一个斗,用作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...
,但我想知道是否有可能"hint" Glue有关分区字段名称 .
另一种选择是试图改变Firehose前缀,但我找不到任何暗示甚至可能的东西 .
1 回答
在这种情况下,您可以设置“忽略更改并且不更新数据目录”选项 .
然后,您可以重命名列 . 这将允许爬网程序在下次运行时检测新分区,但保留其名称 .