json - 在Hive中将时间戳转换为Hive格式时出错

标签 json datetime hadoop hive unix-timestamp

我的 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)

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

最佳答案

下面的查询应该工作:

从from_unixtime中选择(cast(1393526016039/1000 as bigint),'YYYY-MM-dd HH:mm:SS')作为time_unix
来自slog_table

关于json - 在Hive中将时间戳转换为Hive格式时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103628/

相关文章:

java - 获取前一天

mysql - 如何在SQLite session 中设置时区?

Hadoop HDFS : Trash location

hadoop - Hive Shell 挂起并变得无响应

javascript - xml 到 json 映射挑战

使用 DateTime.date 的 C# MongoDb 项目

ios - 在 Swift 中,从 JSON 加载的 tableView 数据仅在 80% 的时间内加载

hadoop - 在 pig 中产生独特的十字架

ios - 创建 iOS 应用程序的建议,该应用程序获取 JSON 响应并将数据存储在核心数据中(供离线使用)

json - FineUploader OnComplete 方法未触发