我有存储在 HDFS 上的文本文件中的数据,具有以下目录结构:
/exported/year/07/month/hour/SEARCHES/
/exported/2014/07/01/00/SEARCHES/part-m-00000
part-m-00001
/exported/2014/07/01/02/SEARCHES/part-m-00000
part-m-00001
part-m-00003
.
.
.
.
/exported/2014/08/01/09/SEARCHES/part-m-00005
因此,我使用以下查询在 impala 中创建了一个外部表:
CREATE EXTERNAL TABLE search
(time_stamp TIMESTAMP, url STRING, domain STRING, ............ keyword STRING)
PARTITIONED BY (year INT, month INT, day INT, hour INT)
row format delimited fields terminated by '\t';
并将数据加载到其中:
ALTER TABLE search_mmx ADD PARTITION (year=2014, month=08, day=${d}, hour=${h})
LOCATION '/exported/2014/08/${d}/${h}/SEARCHES/';
适用于所有可用的日期和时间。它已成功加载,我通过计算行数来验证这一点。
但是当我尝试select * from search limit 10;
它时给出错误“错误转换列:0 TO TIMESTAMP(数据为:1406965816)”
time_stamp 的原始值为 Unix 时间戳格式。如何将它从 unix 时间戳转换为 Impala TIMESTAMP 数据类型?