Roo*_*kie 2 hadoop hive date hiveql
我有一些关于 HDFS 的数据,我正在尝试设置这些数据以通过 hive 进行查询。数据采用逗号分隔的文本文件的形式。文件中的一列是日期/时间列,如下所示:
Wed Aug 29 16:16:58 CDT 2018
Run Code Online (Sandbox Code Playgroud)
当我尝试读取使用以下脚本创建的 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';
Run Code Online (Sandbox Code Playgroud)
当我用 STRING 替换 TIMESTAMP 时,我能够读取列值。但不确定如何将其作为 Hive 支持的适当日期格式读取...
从 Hive 1.2 开始,您可以像这样设置日期格式。
ALTER TABLE ORDERS SET SERDEPROPERTIES ("timestamp.formats"="EEE MMM dd HH:mm:ss zzz yyyy");
Run Code Online (Sandbox Code Playgroud)
从文档。
在表级别,可以通过向 SerDe 属性“timestamp.formats”(从带有 HIVE-9298 的 1.2.0 版开始)提供格式来支持替代时间戳格式。例如,yyyy-MM-dd'T'HH:mm:ss.SSS,yyyy-MM-dd'T'HH:mm:ss。