【发布时间】:2016-04-17 21:14:38
【问题描述】:
我的要求很简单,如何计算hive中两列之间的时间差
示例
时间_开始:10:15:00
时间_结束:11:45:00
我需要做 (Time_End-Time_Start) =1:30:00
请注意,这两列都是字符串数据类型,请帮助获得所需的结果..
【问题讨论】:
标签: java hadoop hive apache-pig bigdata
我的要求很简单,如何计算hive中两列之间的时间差
示例
时间_开始:10:15:00
时间_结束:11:45:00
我需要做 (Time_End-Time_Start) =1:30:00
请注意,这两列都是字符串数据类型,请帮助获得所需的结果..
【问题讨论】:
标签: java hadoop hive apache-pig bigdata
您需要将 HH:MM:SS 时间转换为秒,获取它们之间的差异并将其重新排列为另一个 HH:MM:SS 时间。
【讨论】:
Language manual 包含所有可用日期时间函数的描述。可以这样计算以秒为单位的差异:hour(time_end) * 3600 + minute(time_end) * 60 + second(time_end) - hour(time_start) * 3600 - minute(time_start) * 60 - second(time_start)。您可以使用from_unixtime(..., 'HH:mm:ss') 包装它以获取格式化的时间差异。
write a UDF 可能会更好,而不是将所有这些都放入您的查询中。
【讨论】: