代码之家  ›  专栏  ›  技术社区  ›  Rookie

配置单元日期/时间戳列

  •  2
  • Rookie  · 技术社区  · 6 年前

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

    Wed Aug 29 16:16:58 CDT 2018
    

    当我尝试读取使用以下脚本创建的配置单元表时,我会得到空值作为此列的读取值。

    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';
    

    当我用字符串替换时间戳时,我可以读取列值。但不确定如何将其作为配置单元支持的适当日期格式读取…

    1 回复  |  直到 6 年前
        1
  •  4
  •   hlagos    6 年前

    从配置单元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.