当前位置:   article > 正文

Hive_处理NULL的几个函数 NVL, COALESCE, NULLIF_hive nullif

hive nullif

官方文档:

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF

参考文档:

https://blog.csdn.net/qq_34105362/article/details/80402806

 

       Hive提供了很多的函数,可以在命令行下show functions罗列所有的函数,你会发现这些函数名与mysql的很相近,绝大多数相同的,可通过describe function functionName 查看函数使用方法。

 

 

Hive 常用的空值处理函数有 NVL (0.11 + ), COALESCE , NULLIF (2.3.0 +).

空值处理函数的主要作用 : 

NVL (0.11), COALESCE  针对于空值数据进行补齐

nullif( a, b ) 主要是完成判断 a 与 b 是否相同 , 相同返回 null ,否则返回 a

 

下面我们看一下这几个函数的介绍,我们按照常用程度进行介绍

 

1.COALESCE

T

COALESCE(T v1, T v2, ...)

Returns the first v that is not NULL, or NULL if all v's are NULL.

  1. hive> describe function coalesce;
  2. OK
  3. coalesce(a1, a2, ...) - Returns the first non-null argument
  4. Time taken: 0.028 seconds, Fetched: 1 row(s)

Coalese函数的作用是的NVL的函数有点相似,其优势是有更多的选项。
格式如下:
Coalesce(expr1, expr2, expr3….. exprn)
表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。

 

实际工作中,我一般使用这个方法,给NULL的数据一个默认值。

 

 

2.NVL

Tnvl(T value, T default_value)Returns default value if value is null else returns value (as of HIve 0.11).
  1. hive> describe function nvl;
  2. OK
  3. nvl(value,default_value) - Returns default value if value is null else returns value
  4. Time taken: 0.019 seconds, Fetched: 1 row(s)

NVL(expr1, expr2):
1、空值转换函数;
2、类似于mysql-nullif(expr1, expr2),sqlserver-ifnull(expr1, expr2)。

备注:
1、如果expr1为NULL,返回值为 expr2,否则返回expr1。
2、适用于数字型、字符型和日期型,但是 expr1和expr2的数据类型必须为同类型。
 

3.NULLIF 

Tnullif( a, b )

Returns NULL if a=b; otherwise returns a (as of Hive 2.3.0).

Shorthand for: CASE WHEN a = b then NULL else a

 由于我用的是 Hive 较低的版本暂时不支持这个函数,故不作Hive 控制台的演示。

NULLIF(exp1,expr2)函数的作用是如果exp1和exp2相等则返回空(NULL),否则返回第一个值。

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/973698
推荐阅读
相关标签
  

闽ICP备14008679号