gpt4 book ai didi

java - Hive NVL 不适用于列的日期类型 - NullpointerException

转载 作者:可可西里 更新时间:2023-11-01 14:22:01 26 4
gpt4 key购买 nike

我在 HDFS 上使用 MapR Hive 分发并面临以下问题。如果表的列类型是“日期”类型,则 NVL功能不起作用。这同样适用于其他数据类型。

它只是抛出

NullpointerException:Null

甚至解释函数也抛出相同的异常。

请在这里帮忙。是 Hive 发行版中的错误吗?

最佳答案

我自己用变通方法解决了这个问题:

对于 Date 类型,您可以使用 hive COALESCE 函数,如下所示:

COALESCE(nt.assess_dt, cast('9999-01-01' as date))

上面的答案可以解释为:

  • 找到 nt.assess_dt(这是一个 date 类型的列);如果它是 null,则获取 COALESCE 函数中的下一个值;这是上面示例中的非空值,因此将被返回。

请注意,它与 NVL 略有不同,COALESCE 返回的值需要是同一类型。因此,在上面的示例中,COALESCE 无法返回空白的 ''

因此,我使用了一个非常大的日期值 9999-01-01 来表示一个 null 值并区分真正的日期值。如果您的日期列确实可以将这个大值作为有效值,您应该考虑其他一些有效日期值来表示 null 日期。

了解更多关于这个和其他替代品的信息 here

关于java - Hive NVL 不适用于列的日期类型 - NullpointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32269671/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com