【问题标题】:convert TO_CHAR, IS_DATE to hive query将 TO_CHAR、IS_DATE 转换为配置单元查询
【发布时间】:2022-11-17 16:43:31
【问题描述】:

我想将特定数据转换为 Hive。 但是,Oracle 中可用的功能不能在 Hive 中使用。我该如何解决这个问题? 应用的转换规则如下。

DECODE(TRUE, IS_DATE(TO_CHAR(columnname , 'YYYYMMDD'), 'YYYYMMDD'),NULL)

DECODE的情况下,确认可以用IF处理。 但是我找不到改变IS_DATE函数和TO_CHAR函数的方法。

【问题讨论】:

    标签: hadoop hive


    【解决方案1】:

    Oracle 没有 IS_DATE 函数。您确定这不是用户定义的函数吗?如果是这样,那么您将需要查看源代码并检查它的作用并在 Hive 中复制它。

    但是,从查看您的代码来看,其意图似乎是:

    1. 采用DATE数据类型的columnname列的值;
    2. 将它从DATE转换为YYYYMMDD格式的字符串;
    3. 检查YYYYMMDD 格式的字符串是否为有效日期(如果columnname 为非NULL 则为有效日期,如果columnnameNULL 则无效,因此您正在有效地检查以查看如果该列是NULL)。
    4. 如果外部DECODE将其第一个参数与第二个参数匹配,则输出第三个参数,否则输出NULL
    5. 因为第三个参数是NULL,所以它总是输出NULL

      因此,您可以将整个内容替换为:NULL

    【讨论】:

      猜你喜欢
      • 2017-03-08
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      • 2019-07-15
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2020-11-03
      相关资源
      最近更新 更多