Hive 您所在的位置:网站首页 hive字符替换 Hive

Hive

2024-06-12 12:17| 来源: 网络整理| 查看: 265

官方文档:

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.

hive> describe function coalesce; OK coalesce(a1, a2, ...) - Returns the first non-null argument 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). hive> describe function nvl; OK nvl(value,default_value) - Returns default value if value is null else returns value 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),否则返回第一个值。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有