hadoop - 比较 HDFS 中的毫秒时间戳

标签 hadoop timestamp hdfs impala

我有 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但他们似乎都没有晋级。 我试过:

  1. 将字符串转换为时间戳,然后减去 2 个值。这将返回错误“AnalysisException:算术运算需要数字操作数”
  2. 使用 unix_timestamp 函数。这会将值截断为代表秒的 int,因此亚秒级值会丢失。

最佳答案

在写这个问题时我找到了答案:)

实现它的方法是使用双重类型转换。

Cast(cast(time_stamp) as timestamp) as double)

这使得 times_stamp 成为一个数字,而不会截断亚秒级的值。

一旦到了那里,它就变成了一个微不足道的算术运算。

关于hadoop - 比较 HDFS 中的毫秒时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33481802/

相关文章:

java - 如何通过使用Maven导入另一个包类?

hadoop - 租期过期异常 : No lease error on HDFS

apache - Ambari 2.2.1重新启动服务

hadoop - Hive CLI或Beeline>是否可以通过 “--hiveconf”覆盖Hadoop属性

mongodb - 如何在hadoop mongodb mapreduce作业输出中嵌入文档?

渲染音频单元时 iOS 准确的 AudioTimeStamp

python - 在python中创建带时间戳的文件夹

hadoop - 在 Amazon AWS 上将 Hadoop 与 Cassandra 连接 - netty 版本冲突?

hadoop - 为什么不为 hadoop TeraSort 映射器/ reducer

apache - 将Apache日志的精度提高到毫秒