Hive 时间戳总是 returns null

Hive timestamp always returns null

我正在尝试创建 HIVE ORC table。

我创建 ORC table 的方法如下:

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

  2. 我加载数据到文本table(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
    

我遇到的问题是: EMPLOYEE_TEXT 有一个存储为字符串的时间戳。我正在尝试将其转换为 ORC table 的时间戳。由于某些原因,我总是将值设为 null。

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

我看到配置单元 table 中有数据,但 ORC 中的时间戳始终 returns 为空。 示例时间戳格式为:“20171109 14:37:57:026000 -0500”;

我可以让它与这个功能一起工作。

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