Hadoop 比较HDFS中的毫秒时间戳

Hadoop 比较HDFS中的毫秒时间戳,hadoop,timestamp,hdfs,impala,Hadoop,Timestamp,Hdfs,Impala,我有两个时间戳列存储在一个HDFS中,我可以通过黑斑羚、蜂巢等访问它们 我需要比较的时间戳可能如下示例所示: 2014-04-08 00:23:21.687000000 2014-04-08 00:23:2162亿 以毫秒为单位,并且需要构建一个新列,该列在本例中的值应为0.067000 我试过用黑斑羚的,但没有一个能成功。 我试过: 将字符串强制转换为时间戳,然后减去2个值。这将返回错误“AnalysisException:算术运算需要数字操作数” 使用unix_时间戳函数。这会将值截断为表示

我有两个时间戳列存储在一个HDFS中,我可以通过黑斑羚、蜂巢等访问它们

我需要比较的时间戳可能如下示例所示:

2014-04-08 00:23:21.687000000

2014-04-08 00:23:2162亿

以毫秒为单位,并且需要构建一个新列,该列在本例中的值应为0.067000

我试过用黑斑羚的,但没有一个能成功。 我试过:

  • 将字符串强制转换为时间戳,然后减去2个值。这将返回错误“AnalysisException:算术运算需要数字操作数”
  • 使用unix_时间戳函数。这会将值截断为表示秒的整数,因此亚秒值将丢失
    写这个问题时,我找到了答案:)

    这样做的方法是使用双重铸造

    转换(转换(时间戳为时间戳)为双精度)

    这使得times_戳成为一个数字,而不会截断亚秒值

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