文章目录
Hive系列文章
Hive系列 (八):Hive中的explode 与 lateral view
常用函数介绍
Hive常用函数比较多,随用随查,官方文档
大概整理如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvY92GE2-1630478811346)(C:\Users\EricR\Desktop\Hive常用函数.png)]
Hive内置函数
查看系统自带函数
0: jdbc:hive2://master:10000> use myhive;
OK
No rows affected (2.364 seconds)
0: jdbc:hive2://master:10000> show functions;
OK
+------------------------------+
| tab_name |
+------------------------------+
| ! |
| != |
| $sum0 |
| % |
| & |
| * |
| + |
| - |
| / |
| < |
| <= |
| <=> |
显示自带函数用法
0: jdbc:hive2://master:10000> desc function max;
OK
+------------------------------------------------+
| tab_name |
+------------------------------------------------+
| max(expr) - Returns the maximum value of expr |
+------------------------------------------------+
1 row selected (0.089 seconds)
0: jdbc:hive2://master:10000> desc function upper;
OK
+----------------------------------------------------+
| tab_name |
+----------------------------------------------------+
| upper(str) - Returns str with all characters changed to uppercase |
+----------------------------------------------------+
1 row selected (0.037 seconds)
0: jdbc:hive2://master:10000>
显示自带函数的详细用法
0: jdbc:hive2://master:10000> desc function extended upper;
OK
+----------------------------------------------------+
| tab_name |
+----------------------------------------------------+
| upper(str) - Returns str with all characters changed to uppercase |
| Synonyms: ucase |
| Example: |
| > SELECT upper('Facebook') FROM src LIMIT 1; |
| 'FACEBOOK' |
| Function class:org.apache.hadoop.hive.ql.udf.generic.GenericUDFUpper |
| Function type:BUILTIN |
+----------------------------------------------------+
关系运算
| 关系运算 | 语法 | 操作类型 | 描述 |
|---|---|---|---|
| 等值比较:= | A = B | 所有基本类型 | 如果表达式A与表达式B相等,则为true;否则为false |
| 不等值比较: <> | A <> B | 所有基本类型 | 如果表达式A为null,或者表达式B为null,返回null;如果表达式A与表达式B不相等,则为true;否则为false |
| 小于比较: < | A < B | 所有基本类型 | 如果表达式A为null,或者表达式B为null,返回null;如果表达式A小于表达式B,则为true;否则为false |
| 小于等于比较: <= | A <= B | 所有基本类型 | 如果表达式A为null,或者表达式B为null,返回null;如果表达式A小于或者等于表达式B,则为true;否则为false |
| 大于比较: > | A > B | 所有基本类型 | 如果表达式A为null,或者表达式B为null,返回null;如果表达式A大于表达式B,则为true;否则为false |
| 大于等于比较: >= | A >= B | 所有基本类型 | 如果表达式A为null,或者表达式B为null,返回null;如果表达式A大于或者等于表达式B,则为true;否则为false |
| 空值判断: is null | A is null | 所有基本类型 | 如果表达式A的值为null,则为true;否则为false |
| 非空判断: is not null | A is not null | 所有基本类型 | 如果表达式A的值为null,则为false;否则为true |
| LIKE比较 | A LIKE B | strings | 如果字符串A或者字符串B为null,则返回null;如果字符串A符合表达式B 的正则语法,则为true;否则为false。B中字符”_”表示任意单个字符,而字符”%”表示任意数量的字符。 |
| REGEXP操作 | A REGEXP B | strings | 如果字符串A或者字符串B为null,则返回null;如果字符串A符合JAVA正则表达式B的正则语法,则为true;否则为false |
| RLIKE比较 | A RLIKE B | strings | 功能与REGEXP相同 |
数学运算
| 数学运算 | 语法 | 操做类型 | 描述 |
|---|---|---|---|
| 加法: + | A + B | 所有数值类型 | 返回A与B相加的结果 |
| 减 法: - | A – B | 所有数值类型 | 返回A与B相减的结果 |
| 乘法: * | A * B | 所有数值类型 | 返回A与B相乘的结果。注意,如果A乘以B的结果超过默认结果类型的数值范围, 则需要通过cast将结果转换成范围更大的数值类型 |
| 除法: / | A / B | 所有数值类型 | 返回A除以B的结果 |
| 取余: % | A % B | 所有数值类型 | 返回A除以B的余数 |
| 位与: & | A & B | 所有数值类型 | 返回A和B按位进行与操作的结果 |
| 位或: | | A |B | 所有数值类型 | 返回A和B按位进行或操作的结果 |
| 位异或: ^ | A ^ B | 所有数值类型 | 返回A和B按位进行异或操作的结果 |
| 位取反: ~ | ~A | 所有数值类型 | 返回A按位取反操作的结果 |
逻辑运算
| 逻辑运算 | 语法 | 操做类型 | 描述 |
|---|---|---|---|
| 逻辑与: AND | A AND B | boolean | 如果A和B均为true,则为true;否则为false。如果A为null或B为null,则为null |
| 逻辑或: OR | A OR B | boolean | 如果A为true,或者B为true,或者A和B均为true,则为true;否则为false |
| 逻辑非: NOT | NOT A | boolean | 如果A为false,或者A为null,则为true;否则为false |
数值运算
| 数值运算 | 语法 | 返回值 | 描述 |
|---|---|---|---|
| 取整函数: round | round(double a) | bigint | 返回double类型的整数值部分 (四舍五入) |
| 指定精度: round | round(double a, int d) | double | 返回指定精度d的double类型 |
| 向下取整: floor | floor(double a) | bigint | 返回等于或小于该double变量的最大的整数 |
| 向上取整: ceil | ceil(double a) | bigint | 返回等于或大于该double变量的最小的整数 |
| 向上取整: ceiling | ceiling(double a) | bigint | 同ceil |
| 取随机数: rand | rand(),rand(int seed) | double | 返回一个0到1范围内的随机数。如果指定种子seed,则会等到一个稳定的随机数序列 |
| 自然指数: exp | exp(double a) | double | 返回自然对数e的a次方 |
| 幂运算: pow | pow(double a, double p) | double | 返回a的p次幂 |
| 开平方: sqrt | sqrt(double a) | double | 返回a的平方根 |
| 二进制: bin | bin(bigint a) | string | 返回a的二进制代码表示 |
| 绝对值: abs | abs(double a) | double | 返回数值a的绝对值 |
| positive函数 | positive(int a) | int | 返回a, 参数可以是算数表达式positive(a+b) |
| negative函数 | negative(int a) | int | 返回-a,参数可以是算数表达式negative(a-b) |
日期函数
时间戳转日期
语法: from_unixtime(bigint unixtime[, string format])
返回值: string
说明: 转化UNIX时间戳(从1970-01-01 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式
示例:
0: jdbc:hive2://master:10000> select from_unixtime(1630386807,'yyy

本文是Hive系列的第七篇,主要介绍了Hive的各种常用函数,包括内置函数、关系运算、数学运算、逻辑运算、数值运算、日期函数、条件函数、字符串函数、集合统计函数、复杂类型构建及访问和窗口函数。详细讲解了如时间戳转日期、日期转时间戳、日期函数中的年份、月份、天数、小时、分钟和秒的提取,以及If函数、COALESCE函数和CASE条件判断等。
最低0.47元/天 解锁文章
5509

被折叠的 条评论
为什么被折叠?



