Hive之系统内置函数
1 系统内置函数
1)查看系统自带的函数
hive (default)> desc function upper; show functions;
Time taken: 0.025 seconds, Fetched: 289 row(s)
2)显示自带的函数的用法
hive (default)> desc function upper;
OK
tab_name
upper(str) - Returns str with all characters changed to uppercase
Time taken: 0.019 seconds, Fetched: 1 row(s)
3)详细显示自带的函数的用法
hive (default)> 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
Time taken: 0.442 seconds, Fetched: 7 row(s)
2 常用内置函数
2.1 空字段赋值
1)函数说明
NVL:给值为NULL的数据赋值,它的格式是NVL( value,default_value)。它的功能是如果value为
NULL,则NVL函数返回default_value的值,否则返回value的值,如果两个参数都为NULL ,则返回
NULL。
2)数据准备:采用员工表
3)查询:如果员工的comm为NULL,则用-1代替
hive (default)> select comm,nvl(comm,-1) from emp;
OK
comm _c1
NULL -1.0
300.0 300.0
500.0 500.0
NULL -1.0
1400.0 1400.0
NULL -1.0
NULL -1.0
NULL -1.0
NULL -1.0
0.0 0.0
NULL -1.0
NULL -1.0
NULL -1.0
NULL -1.0
Time taken: 1.78 seconds, Fetched: 14 row(s)
4)查询:如果员工的comm为NULL,则用领导id代替、
hive (default)> select comm, nvl(comm,mgr) from emp;
OK
comm _c1
NULL 7902.0
300.0 300.0
500.0 500.0
NULL 7839.0
1400.0 1400.0
NULL 7839.0
NULL 7839.0
NULL 7566.0
NULL NULL
0.0 0.0
NULL 7788.0
NULL 7698.0
NULL 7566.0
NULL 7782.0
Time taken: 0.148 seconds, Fetched: 14 row(s)
2.2 CASE WHEN THEN ELSE END
1)数据准备
name | dept_id | sex |
---|---|---|
悟空 | A | 男 |
大海 | A | 男 |
宋宋 | B | 男 |
凤姐 | A | 女 |
婷姐 | B | 女 |
婷婷 | B | 女 |
2)需求
求出不同部门男女各多少人。结果如下:
dept_Id 男 女
A 2 1
B 1 2
3)创建本地emp_sex.txt,导入数据