在 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