Hive列加载为null

时间:2016-12-14 01:11:00

标签: sql hadoop hive

我试图加载一个包含17列的表,其中一列(日期时间)被加载为null。我不确定我是否使用了正确的数据类型。这是我的加载脚本:

CREATE EXTERNAL TABLE IF NOT EXISTS
Weather(year INT, month INT, day int, TimeCST timestamp, temperature float,
dew float, humidity int, sea float, visibility int, wind STRING, wspeed float,
gust float, rain float, events string, conditions string, degrees int, dateutc datetime)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION '/home/ubuntu/final';

令人不安的专栏是dateutc专栏。我已尝试加载日期时间和时间戳,两者都显示为空。这是底层csv的值。 1/1/2000 7:53。

为什么会发生这种情况的任何想法?

由于

1 个答案:

答案 0 :(得分:0)

文本文件中的时间戳必须使用yyyy-mm-dd hh:mm:ss [.f ...]格式。如果它们是另一种格式,则将它们声明为适当的类型(INT,FLOAT,STRING等),并使用UDF将它们转换为时间戳。

在表级别上,可以通过向SerDe属性提供格式来支持替代时间戳格式" timestamp.formats" (截至1.2.0版,HIVE-9298)。例如,yyyy-MM-dd' HH:mm:ss.SSS,yyyy-MM-dd' H&H:mm:ss。

请参阅此参考:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Types