在 Impala 中将 STRING 转换为 DATE。 (可能的错误)
Casting STRING to DATE in Impala. (Possible bugs)
这似乎是我面临的一个有趣的bug/problem。我正在使用 Impala 和 CDH 5.8(Hadoop 的 Cloudera 发行版)下的 HUE。
在执行下面的代码时
select '1709.02.02' as DateString, CAST((from_unixtime(UNIX_TIMESTAMP('1709.02.02','yyyy.MM.dd'))) as TIMESTAMP) as DateTimestamp
我得到如下输出(这是预期的)
datestring datetimestamp
1709.02.02 1709-02-02 00:00:00
但是在执行下面的代码时
select '1009.02.02' as DateString, CAST((from_unixtime(UNIX_TIMESTAMP('1009.02.02','yyyy.MM.dd'))) as TIMESTAMP) as DateTimestamp
显示的输出如下(这不是预期的):
datestring datetimestamp
1009.02.02 NULL
有人可以解释为什么会发生这种情况and/or提出一个可能的解决方法吗?
PS:如果上面的查询在 Hive 中是 运行 似乎工作正常。但是在 Impala 中,我们得到的是 NULL 值。
Impala 仅支持 1400 年到 9999 年之间的时间戳,因此超出这些范围的任何时间戳值都将为 NULL。
https://www.cloudera.com/documentation/enterprise/latest/topics/impala_timestamp.html#timestamp
这似乎是我面临的一个有趣的bug/problem。我正在使用 Impala 和 CDH 5.8(Hadoop 的 Cloudera 发行版)下的 HUE。
在执行下面的代码时
select '1709.02.02' as DateString, CAST((from_unixtime(UNIX_TIMESTAMP('1709.02.02','yyyy.MM.dd'))) as TIMESTAMP) as DateTimestamp
我得到如下输出(这是预期的)
datestring datetimestamp
1709.02.02 1709-02-02 00:00:00
但是在执行下面的代码时
select '1009.02.02' as DateString, CAST((from_unixtime(UNIX_TIMESTAMP('1009.02.02','yyyy.MM.dd'))) as TIMESTAMP) as DateTimestamp
显示的输出如下(这不是预期的):
datestring datetimestamp
1009.02.02 NULL
有人可以解释为什么会发生这种情况and/or提出一个可能的解决方法吗?
PS:如果上面的查询在 Hive 中是 运行 似乎工作正常。但是在 Impala 中,我们得到的是 NULL 值。
Impala 仅支持 1400 年到 9999 年之间的时间戳,因此超出这些范围的任何时间戳值都将为 NULL。
https://www.cloudera.com/documentation/enterprise/latest/topics/impala_timestamp.html#timestamp