如何在AWS Athena中定义“日期”列?

时间:2016-12-10 07:34:39

标签: amazon-web-services amazon-athena

我正在尝试使用AWS Athena来查询S3上的csv数据文件,csv文件中有多个日期列,但Athena中的列类型没有“日期”,我试图使用“timestamp” ,但是无法查询日期列。

有什么建议吗?

2 个答案:

答案 0 :(得分:4)

实际上Athena有一个列类型日期。

这是一个带日期的表的简短示例。

CSV:

2016-10-12,2016-10-01,hello,world1
2016-10-13,2016-10-01,hello,world2
2016-10-14,2016-10-01,hello,world3
2016-10-15,2016-10-01,hello,world4

DDL:

CREATE EXTERNAL TABLE test (
  startdate date,
  enddate date,
  val1 string,
  val2 string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ','
) LOCATION 's3://test-data/test/';

QUERY:

select * from test where startdate > DATE'2016-10-13';

答案 1 :(得分:0)

Amazon Athena使用Apache Hive。 Apache Hive允许在Hive 0.12.0及更高版本中使用primitive_type的'date'。我已经测试并证实它适用于当前的Athena实现。

文档链接:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL