Bal*_*nki 9 amazon-s3 amazon-web-services amazon-athena aws-glue
我一直在按照这里的教程使用AWS Glue进行一些快速分析
虽然我已经能够成功创建爬虫并在 Athena 中发现数据,但我遇到了爬虫创建的数据类型的问题。该date和timestamp数据类型得到读的string数据类型。
我随后通过ETL使用爬虫创建的数据源作为输入和Amazon S3 中的目标表在 GLUE 中创建作业
作为映射转换的一部分,我将日期和时间戳的数据类型转换为string,timestamp但不幸的是 ETL 将这些列类型转换为NULLS. 我曾考虑将分类器与GROK表达式一起使用,但后来决定将它们转换为 GLUE 中 ETL 的一部分。
时间戳格式为 1/08/2010 6:15:00 PM
以下是时间戳数据的内置分类器。正如您所看到的,您拥有的数据与其中任何一个都不匹配。您需要创建一个自定义分类器,然后将其添加到新的爬网程序(更新现有爬网程序不起作用)
TIMESTAMP_ISO8601 %{YEAR}-%{MONTHNUM}-%{MONTHDAY}[T ]%{HOUR}:?%{MINUTE}(?::?%{SECOND})?%{ISO8601_TIMEZONE}?
TZ (?:[PMCE][SD]T|UTC)
DATESTAMP_RFC822 %{DAY} %{MONTH} %{MONTHDAY} %{YEAR} %{TIME} %{TZ}
DATESTAMP_RFC2822 %{DAY}, %{MONTHDAY} %{MONTH} %{YEAR} %{TIME} %{ISO8601_TIMEZONE}
DATESTAMP_OTHER %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{TZ} %{YEAR}
DATESTAMP_EVENTLOG %{YEAR}%{MONTHNUM2}%{MONTHDAY}%{HOUR}%{MINUTE}%{SECOND}
CISCOTIMESTAMP %{MONTH} %{MONTHDAY} %{TIME}
Run Code Online (Sandbox Code Playgroud)
我不知道您使用的时间戳格式是什么,因此我假设格式如下:
2018-05-30T12:22:07.000Z
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以在表定义中设置 serde 参数,如下所示:
'timestamp.formats'='yyyy-MM-dd\'T\'HH:mm:ss.SSSZ'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10643 次 |
| 最近记录: |