基础JSON文件中的时间戳格式已更改时,在Athena中查询时间戳数据

时间:2018-08-29 11:09:56

标签: amazon-web-services amazon-athena presto aws-glue

我正在从S3中存储的JSON文件中查询AWS Athena中的数据。我已使用AWS Glue将所有JSON文件加载到Athena中,到目前为止,它一直运行良好。但是,

中的JSON文件中的时间戳格式已更改
2018-03-23 15:00:30.998

2018-08-29T07:59:50.568Z

所以表最终有这样的条目

2018-08-29T07:59:42.803Z
2018-08-29T07:59:42.802Z
2018-08-29T07:59:32.500Z
2018-03-23 15:03:43.232
2018-03-23 15:03:44.697
2018-03-23 15:04:11.951

当我尝试对整个数据库运行查询时,这会导致解析错误。

如何在AWS Glue(或Athena)中容纳此数据,所以查询时不必拆分数据?我曾尝试研究自定义分类器,但不确定在这种特殊情况下如何使用它们。

谢谢。

1 个答案:

答案 0 :(得分:2)

不幸的是,您必须统一数据。如果您决定使用“ 2018-08-29T07:59:50.568Z”格式,则可以通过使用具有以下serde属性的org.apache.hive.hcatalog.data.JsonSerDe库读取此类数据:'timestamp.formats'=' yyyy-MM-dd \'T \'HH:mm:ss.SSSZ'