我已经开始在我的S3 FILE上使用Athena Query引擎了 其中一些是时间戳格式列。
我创建了一个包含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
我尝试过不同类型的时间戳格式,例如DD / MM / YYYY和YYY-MM-DD ......,尝试为每一行设置时区 - 但都没有工作。
我尝试的每个值都显示在Athena中,结果如下:
date_x clicks
1 12
2 42
3 22
我尝试过使用带有和不带标头的CSV文件 尝试使用带引号和不带引号, 但他们都显示出叛逃的时间戳。 我在雅典娜的专栏必须是时间戳 - 而不是时区。 请不要使用STRING列或DATE列,这不是我需要的。
CSV文件应如何显示,以便Athena识别Timestamp列?
答案 0 :(得分:4)
尝试格式: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 . "