如何从两个纪元时间戳计算出蜂巢中hh:mm:ss的差异?

时间:2018-03-05 19:04:27

标签: hadoop hive mapreduce hiveql hadoop2

我在hive表T1的两列中有两个epoch格式的时间戳。它们实际上代表了工作开始时间和结束时间。我想计算作业运行的持续时间。因此,我将epoch时间转换为timestamp数据类型并减去它们。这是根据' dd:mm:ss:ms'给出的输出。让我们说输出进入列#duration;#39;在表T2中,它是ddl中的时间戳数据类型。但是当我将这些数据写入表T2时,作业会在mapreduce阶段的一半时发出错误,说明未知数据类型:interval_day_time'。我无法使用' interval_day_time' ddl中的数据类型甚至会给我一个错误。

还有其他方法吗?

2 个答案:

答案 0 :(得分:0)

取决于您希望如何存储"持续时间"领域。 DATE_DIFF函数可用于计算两个时间戳日期之间的差异,以天为单位。然后可以将此天数值转换为小时,分钟或秒。

答案 1 :(得分:0)

好吧,我无法绕过它。所以我创建了自己的宏,用数学公式计算小时,分钟和秒的时间,并输出字符串中的值。