hive部分:hive中的函数

本文介绍了Hive中的各种函数,包括内置函数、聚合函数(UDAF)、表生成函数(UDTF)以及自定义函数的开发。详细讲解了UDF、UDAF和UDTF的特性和使用方法,例如UDF的一进一出、UDAF的多进一出以及UDTF的一进多出功能。还涵盖了开发自定义函数的步骤,包括UDF和UDAF的实现细节。
摘要由CSDN通过智能技术生成

udf:叫一进一出

udaf:聚合函数,多进一出

udtf:一进多出

Hive函数

1.内置运算符

1.1关系运算符

运算符

类型

说明

A = B

所有原始类型

如果A与B相等,返回TRUE,否则返回FALSE

A == B

失败,因为无效的语法。 SQL使用”=”,不使用”==”。

A <> B

所有原始类型

如果A不等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A < B

所有原始类型

如果A小于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A <= B

所有原始类型

如果A小于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A > B

所有原始类型

如果A大于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A >= B

所有原始类型

如果A大于等于B返回TRUE,否则返回FALSE。如果A或B值为”NULL”,结果返回”NULL”。

A IS NULL

所有类型

如果A值为”NULL”,返回TRUE,否则返回FALSE

A IS NOT NULL

所有类型

如果A值不为”NULL”,返回TRUE,否则返回FALSE

A LIKE B

字符串

如 果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过sql进行匹配,如果相符返回TRUE,不符返回FALSE。B字符串中 的”_”代表任一字符,”%”则代表多个任意字符。例如: (‘foobar’ like ‘foo’)返回FALSE,( ‘foobar’ like ‘foo_ _ _’或者 ‘foobar’ like ‘foo%’)则返回TURE

A RLIKE B

字符串

如 果A或B值为”NULL”,结果返回”NULL”。字符串A与B通过java进行匹配,如果相符返回TRUE,不符返回FALSE。例如:( ‘foobar’ rlike ‘foo’)返回FALSE,(’foobar’ rlike ‘^f.*r$’ )返回TRUE。

A REGEXP B

字符串

与RLIKE相同。

1.2算术运算符

运算符

类型

说明

A + B

所有数字类型

A和B相加。结果的与操作数值有共同类型。例如每一个整数是一个浮点数,浮点数包含整数。所以,一个浮点数和一个整数相加结果也是一个浮点数。

A – B

所有数字类型

A和B相减。结果的与操作数值有共同类型。

A * B

所有数字类型

A和B相乘,结果的与操作数值有共同类型。需要说明的是,如果乘法造成溢出,将选择更高的类型。

A / B

所有数字类型

A和B相除,结果是一个double(双精度)类型的结果。

A % B

所有数字类型

A除以B余数与操作数值有共同类型。

A & B

所有数字类型

运算符查看两个参数的二进制表示法的值,并执行按位”与”操作。两个表达式的一位均为1时,则结果的该位为 1。否则,结果的该位为 0。

A|B

所有数字类型 

运算符查看两个参数的二进制表示法的值,并执行按位”或”操作。只要任一表达式的一位为 1,则结果的该位为 1。否则,结果的该位为 0。 

A ^ B

所有数字类型

运算符查看两个参数的二进制表示法的值,并执行按位”异或”操作。当且仅当只有一个表达式的某位上为 1 时,结果的该位才为 1。否则结果的该位为 0。

~A

所有数字类型

对一个表达式执行按位”非”(取反)。

1.3逻辑运算符

运算符

类型

说明

A AND B

布尔值

A和B同时正确时,返回TRUE,否则FALSE。如果A或B值为NULL,返回NULL。

A && B

布尔值

与”A AND B”相同

A OR B

布尔值

A或B正确,或两者同时正确返返回TRUE,否则FALSE。如果A和B值同时为NULL,返回NULL。

A | B

布尔值

与”A OR B”相同

NOT A

布尔值

如果A为NULL或错误的时候返回TURE,否则返回FALSE。

! A

布尔值

与”NOT A”相同

1.4复杂类型函数

函数

类型

说明

map

(key1, value1, key2, value2, …)

通过指定的键/值对,创建一个map。

struct

(val1, val2, val3, …)

通过指定的字段值,创建一个结构。结构字段名称将COL1,COL2,…

array

(val1, val2, …)

通过指定的元素,创建一个数组。

1.5对复杂类型函数操作

函数

类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值