【问题标题】:Hive date/timestamp columnHive 日期/时间戳列
【发布时间】:2019-03-01 07:18:35
【问题描述】:

我有一些关于 HDFS 的数据,我正在尝试设置这些数据以通过 hive 进行查询。数据采用逗号分隔的文本文件的形式。文件中的一列是日期/时间列,如下所示:

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 支持的适当日期格式......

【问题讨论】:

    标签: date hadoop hive hiveql


    【解决方案1】:

    从 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。

    【讨论】:

      猜你喜欢
      • 2016-02-01
      • 2017-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多