时间戳在蜂巢中不起作用

时间:2014-05-30 17:06:43

标签: hadoop hive hiveql

我有一个表,其中一列数据类型为'timestamp'。每当我尝试对表进行一些查询时,即使是简单的select语句,我也会收到错误。

我的专栏中的一行示例

'2014-01-01 05:05:20.664592-08'

我正在尝试的陈述,

'select * from mytable limit 10;'

我得到的错误是

'Failed with exception java.io.IOException:java.lang.NumberFormatException: For input string: "051-08000"'

像Do_DATE这样的配置单元中的日期函数也不起作用。如果我将数据类型更改为字符串,我可以使用子字符串提取日期部分。但我需要使用时间戳。

之前有没有人遇到此错误?请告诉我。

1 个答案:

答案 0 :(得分:1)

Hadoop无法理解' 2014-01-01 05:05:20.664592-08'作为时间戳,因为" 592-08"在末尾。您应该将数据类型更改为字符串,使用字符串函数切断有问题的部分,然后转换回时间戳:

从mytable选择cast(substring(time_stamp_field,1,23)作为时间戳)