Загрузите csv с меткой времени в таблицу athena - PullRequest
0 голосов
/ 29 апреля 2018

Я начал использовать Athena Query engine поверх моих файлов S3 некоторые из них являются столбцами формата отметки времени.

Я создал простую таблицу с 2 столбцами

CREATE EXTERNAL TABLE `test`(
  `date_x` timestamp, 
  `clicks` int)
ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY ',' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  's3://aws-athena-query-results-123-us-east-1/test'
TBLPROPERTIES (
  'has_encrypted_data'='false', 
  'transient_lastDdlTime'='1525003090')

Я попытался загрузить файл и запросить его с помощью Athena: которые выглядят так:

"2018-08-09 06:00:00.000",12
"2018-08-09 06:00:00.000",42
"2018-08-09 06:00:00.000",22

Я пробовал формат времени другого типа, например, ДД / ММ / ГГГГ и ГГГ-ММ-ДД ..., пытался установить часовой пояс для каждой строки, но ни одна из них не работала.

Каждое значение, которое я пробовал, отображается в Афине, как это выглядит:

        date_x  clicks
        1       12
        2       42
        3       22

Я пытался использовать файл CSV с заголовками и без пробовал использовать с и без кавычек, Но все они показывают испорченную метку времени. Моя колонка об Афине должна быть Timestamp - скорее это без часового пояса. Пожалуйста, не предлагайте использовать столбец STRING или столбцы DATE, это не то, что мне нужно.

Как должен выглядеть файл CSV, чтобы Афина распознала столбец метки времени?

1 Ответ

0 голосов
/ 29 апреля 2018

Попробуйте ФОРМАТ: yyyy-MM-dd HH:mm:ss.SSSSSS

Артикул https://docs.amazonaws.cn/en_us/redshift/latest/dg/r_CREATE_EXTERNAL_TABLE.html предлагает:

"Timestamp values in text files must be in the format yyyy-MM-dd HH:mm:ss.SSSSSS, as the following timestamp value shows: 2017-05-01 11:30:59.000000 . "
...