【发布时间】:2018-11-16 21:46:34
【问题描述】:
如果我在 AWS Athena 中创建了这样的表:
CREATE EXTERNAL TABLE table (
`timestamp` BIGINT,
`id` STRING,
)PARTITIONED BY (
date_column STRING
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' LOCATION 's3://bucket/key' TBLPROPERTIES ( 'parquet.compress'='SNAPPY', 'CrawlerSchemaDeserializerVersion'='1.0', 'CrawlerSchemaSerializerVersion'='1.0', 'classification'='parquet')
添加数据后,date_column 如下所示:
date_column
date=2018102300
date=2018091500 //(so Sept 15, 2018)
我只想获取 9 月份的数据,但无法构建正确的查询:
到目前为止,我有这个会引发日期格式错误:
SELECT * FROM table
where date_parse(date_column, 'date=%Y%m%d') >= date_parse('date=2018090100', 'date=%Y%m%d') and date_parse(date_column, 'date=%Y%m%d') < date_parse('date=2018100100', 'date=%Y%m%d')
【问题讨论】:
-
为什么存储“date=2018102300”而不是“2018102300”?
标签: sql amazon-athena presto