配置单元日期/时间戳列

时间:2018-09-25 15:40:15

标签: date hadoop hive hiveql

我正在尝试设置要通过配置单元查询的HDFS上的一些数据。数据采用逗号分隔的文本文件的形式。文件中的列之一是日期/时间列,如下所示:

Wed Aug 29 16:16:58 CDT 2018

当我尝试读取使用以下脚本创建的Hive表时,将获得NULL作为正在为此列读取的值。

use test_db;
drop table ORDERS;

create external table ORDERS(
    SAMPLE_DT_TM TIMESTAMP
    ...
)
row format delimited
fields terminated by ',' 
stored as textfile
location '/user/data';

当我用STRING替换TIMESTAMP时,我能够读取列值。但不确定如何将其读取为Hive支持的适当日期格式...

1 个答案:

答案 0 :(得分:4)

在Hive 1.2中,您可以像这样设置日期格式。

ALTER TABLE ORDERS SET SERDEPROPERTIES ("timestamp.formats"="EEE MMM dd HH:mm:ss zzz yyyy");

来自文档。

  

在表级别,可以通过以下方式支持其他时间戳格式   将格式提供给SerDe属性“ timestamp.formats”(从   使用HIVE-9298发布1.2.0)。例如,   yyyy-MM-dd'T'HH:mm:ss.SSS,yyyy-MM-dd'T'HH:mm:ss。