我有一个表,其中一列数据类型为'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这样的配置单元中的日期函数也不起作用。如果我将数据类型更改为字符串,我可以使用子字符串提取日期部分。但我需要使用时间戳。
之前有没有人遇到此错误?请告诉我。
答案 0 :(得分:1)
Hadoop无法理解' 2014-01-01 05:05:20.664592-08'作为时间戳,因为" 592-08"在末尾。您应该将数据类型更改为字符串,使用字符串函数切断有问题的部分,然后转换回时间戳:
从mytable选择cast(substring(time_stamp_field,1,23)作为时间戳)