我在配置单元表t1的两列中有两个epoch格式的时间戳。它们实际上代表作业的开始时间和结束时间。我要计算作业运行的持续时间。因此,我将epoch时间转换为timestamp数据类型并减去它们。这是以“dd hh:mm:ss:ms”的形式给我输出的。假设输出进入表t2中的“duration”列,该列是ddl中的timestamp数据类型。但是,当我将这些数据写入表t2时,在mapreduce阶段进行到一半时,作业会给出一个错误,即“未知数据类型:interval\u day\u time”。我不能在ddl中使用“interval\u day\u time”数据类型,因为即使这样也会给我一个错误。
还有别的办法吗?
2条答案
按热度按时间brqmpdu11#
取决于您希望如何存储“持续时间”字段。date_diff函数可用于计算两个时间戳日期之间的差值(以天为单位)。然后可以将以天为单位的值转换为小时、分钟或秒。
bz4sfanl2#
我绕不过去了。因此,我创建了自己的宏,它使用数学公式计算时间(小时、分钟和秒),并以字符串形式输出值。