我有 2 个时间戳列存储在 HDFS 中,我可以通过 Impala、hive 等访问它们...
我需要比较的时间戳可能如下例所示:
2014-04-08 00:23:21.687000000
2014-04-08 00:23:21.620000000
由于毫秒数不同,需要建立一个新的列,在这个例子中应该有一个值 0.067000
我试过使用 impala 的 built in time functions但他们似乎都没有晋级。 我试过:
- 将字符串转换为时间戳,然后减去 2 个值。这将返回错误“AnalysisException:算术运算需要数字操作数”
- 使用 unix_timestamp 函数。这会将值截断为代表秒的 int,因此亚秒级值会丢失。
最佳答案
在写这个问题时我找到了答案:)
实现它的方法是使用双重类型转换。
Cast(cast(time_stamp) as timestamp) as double)
这使得 times_stamp 成为一个数字,而不会截断亚秒级的值。
一旦到了那里,它就变成了一个微不足道的算术运算。
关于hadoop - 比较 HDFS 中的毫秒时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33481802/