配置单元日期/时间戳列

yqlxgs2m  于 2021-06-01  发布在  Hadoop
关注(0)|答案(1)|浏览(338)

我有一些关于hdfs的数据,我正试图通过配置单元进行查询。数据采用逗号分隔的文本文件形式。文件中的一列是日期/时间列,如下所示:

Wed Aug 29 16:16:58 CDT 2018

当我尝试读取使用以下脚本创建的配置单元表时,我得到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';

当我用字符串替换时间戳时,我能够读取列值。但不知道如何将其作为配置单元支持的适当日期格式来读取。。。

x7yiwoj4

x7yiwoj41#

在Hive1.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。

相关问题