У меня есть дата в S3, с помощью которой я создал таблицу Athena. У меня есть несколько записей в формате S3 в формате json, которые Афина не принимает ни как дата, ни как отметка времени при выполнении запросов.
Использование AWS Athena, которая использует Prestodb в качестве механизма запросов
Пример json:
{"creationdate":"2018-09-12T15:49:07.269Z", "otherfield":"value1"}
{"creationdate":"2018-09-12T15:49:07Z", "otherfield":"value2"}
AWS Glue принимает оба поля как строку, и когда я изменяю их на отметку времени и дату, соответственно, запросы вокруг отметки времени не работают, что дает ValidationError для поля отметки времени.
Во всяком случае, я нашел способ использовать функцию prestodb date_parse, но она тоже не работает, так как некоторые поля имеют миллисекунды, а другие нет.
parse_datetime(creationdate, '%Y-%m-%dT%H:%i:%s.%fZ')
parse_datetime(creationdate, '%Y-%m-%dT%H:%i:%sZ')
Обе сбои из-за наличия разных записей, то есть одна с миллисекундами% f, а другая без
Есть ли способ предоставить синтаксический анализатор, regex, чтобы можно было преобразовать эти строки в Date во время выполнения SQL-запроса?