Запрос данных метки времени в Афине, когда формат метки времени в базовых файлах JSON изменился - PullRequest
0 голосов
/ 29 августа 2018

Я запрашиваю данные в AWS Athena из файлов JSON, хранящихся в S3. Я загрузил все файлы JSON в Афину, используя AWS Glue, и до сих пор он работал отлично. Однако форматирование временной метки в файлах 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 голосов
/ 29 августа 2018

К сожалению, вы должны унифицировать данные. Если вы решите использовать формат «2018-08-29T07: 59: 50.568Z», вы можете прочитать такие данные с помощью библиотеки org.apache.hive.hcatalog.data.JsonSerDe со следующим свойством serde: 'timestamp.formats' = ' гггг-мМ-дд \ 'Т \' HH: MM: ss.SSSZ '* +1001 *

...