在 hive 中将时间戳转换为 hive 格式时出错

Posted

技术标签:

【中文标题】在 hive 中将时间戳转换为 hive 格式时出错【英文标题】:Errors in converting timstamp to hive format in hive 【发布时间】:2014-02-28 18:59:36 【问题描述】:

我的 hive 表中有一个 JSON 数据,其中包含以下格式的时间(以毫秒为单位):

...."internal":"time":["1393404205891"]....

我想以YYYY-MM-DD HH:MM:SS 格式获取时间,以便稍后查询它以获取仅特定小时持续时间的记录。 我尝试了以下方法,但仍然无法获得所需格式的时间。

第一次尝试:

select from_unixtime(cast(get_json_object(log_json,'$.internal.time[0]') as bigint)/1000, 'YYYY-MM-DD HH:MM:SS') as time_unix
from slog_table

错误:

No matching method for class org.apache.hadoop.hive.ql.udf.UDFFromUnixTime with (double, string)

第二次尝试:

select from_unixtime (cast ('1393526016039' as int)/1000, 'YYYY-MM-DD HH:MM:SS') as time_unix
from slog_table

【问题讨论】:

【参考方案1】:

下面的查询应该可以工作:

select from_unixtime (cast (1393526016039/1000 as bigint), 'YYYY-MM-dd HH:mm:SS') as time_unix 来自slog_table

【讨论】:

以上是关于在 hive 中将时间戳转换为 hive 格式时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Hive 中将字符串转换为日期/时间戳

如何在hive中将品种自定义时间戳转换为秒

如何在 Hive 或 Presto 中将以下字典格式列转换为不同的格式?

如何在 Presto/Hive 中将日期格式 YYYY-MM-DD 转换为整数 YYYYMMDD?

在 hive 中将时间格式从 'MM/dd/yyyy HH:mm:ss' 转换为 'MM-dd-yyyy' [关闭]

在 HIVE SQL 中将字符串转换为时间