Hive时间戳始终返回null

时间:2017-12-12 16:48:04

标签: hive hiveql

我正在尝试创建HIVE ORC表。

我创建ORC表的方法如下:

  1. 我创建了2个具有相同结构的hive表(一个OCR和第二个TEXTFIle)。 例如我有一个EMPLOYEE_ORC和EMPLOYEE_TEXT表

  2. 我将数据加载到文本表(Employee_TEXT)

    LOAD DATA LOCAL INPATH '/hive/data/emp/emp.json' INTO TABLE COMPANY.EMPLOYEE_TEXT;
    
  3. 将数据从EMPLOYEE_TEXT复制到EMPLOYEE_ORC:

    INSERT OVERWRITE  TABLE COMPANY.EMPLOYEE SELECT * FROM COMPANY.EMPLOYEE_TEXT
    
  4. 我遇到的问题是: EMPLOYEE_TEXT的时间戳存储为String。我想尝试转换为ORC表的时间戳。由于某些原因,我总是将值设为null。

    INSERT OVERWRITE  TABLE COMPANY.EMPLOYEE_TEXT
    SELECT 
    from_unixtime(unix_timestamp(Date_Time_Stamp, 'yyyyMMddHHmmssSSS')),
    NAME 
    FROM
    COMPANY.EMPLOYEE_TEXT;
    

    我看到hive表中有数据,但ORC中的时间戳总是返回null。 示例TimeStamp格式为:" 20171109 14:37:57:026000 -0500&#34 ;;

1 个答案:

答案 0 :(得分:0)

我可以使用此功能。

from_unixtime(unix_timestamp('20171109 14:37:57:026000 -0500','yyyyMMdd HH:mm:ss:SSSSSSSSS ZZZ'))