首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Glue:爬虫错误地将时间戳解释为字符串。用于将字符串转换为时间戳的GLUE ETL使其为空

AWS Glue:爬虫错误地将时间戳解释为字符串。用于将字符串转换为时间戳的GLUE ETL使其为空
EN

Stack Overflow用户
提问于 2018-08-27 03:51:46
回答 2查看 14.2K关注 0票数 11

我一直在使用AWS Glue进行一些快速分析,遵循这里教程。

虽然我已经成功地创建了爬行器并在雅典娜中发现了数据,但我对爬虫创建的数据类型存在问题。datetimestamp数据类型被读取为string数据类型。

接着,我使用爬虫创建的数据源作为ETL S3中的输入和目标表,在GLUE中创建了一个S3作业。

作为映射转换的一部分,我将日期和时间戳的数据类型转换为stringtimestamp,但不幸的是,ETL将这些列类型转换为NULLS。我考虑过使用带有GROK表达式的分类器,但随后决定将它们转换为胶水中ETL的一部分。

时间戳格式为1/08/2010 6:15:00 PM

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-29 11:18:20

我不知道您使用的时间戳格式是什么,因此我假设该格式如下:

代码语言:javascript
复制
2018-05-30T12:22:07.000Z

在这种情况下,可以在表定义中设置serde参数,如下所示:

代码语言:javascript
复制
'timestamp.formats'='yyyy-MM-dd\'T\'HH:mm:ss.SSSZ'
票数 3
EN

Stack Overflow用户

发布于 2018-09-19 12:31:24

下面是时间戳数据的内置分类器。如您所见,您所拥有的数据与其中任何数据都不匹配。您需要创建一个自定义分类器,然后将其添加到一个新的Crawler中(更新现有的爬虫不起作用)。

代码语言:javascript
复制
 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}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52032349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档