-
-- 查看系统自带函数
hive> show functions;
-
least
-
length
-
like
-
max
-
min
-
-- 查看函数使用帮助
hive
> desc function extended upper;
Example:
> SELECT upper('Facebook') FROM src LIMIT 1;
'FACEBOOK'
-
-- CASE WHEN统计工资情况
-
select ename,salary,
-
case
-
when salary>1 and salary<=1000 then 'lower'
-
when salary>1000 and salary<=2000 then 'middle'
-
when salary>2000 and salary<=4000 then 'high'
-
else 'highest'
-
end
-
from emp
OK
SMITH 800.0 lower
ALLEN 1600.0 middle
WARD 1250.0 middle
JONES 2975.0 high
MARTIN 1250.0 middle
BLAKE 2850.0 high
-
-- 类型转换
-
hive> select cast('2018-06-17' as date) from dual;
OK
2018-06-17
-
-
-- 截取字符串
-
hive> select substr('abcdef',1,5) from dual;
OK
abcde
-
-
-- 拼接
-
hive> select concat('123','456') from dual;
OK
123456
-
-- 制定分割拼接
-
hive> select concat_ws('.','www','baidu','com') from dual;
OK
-
-- 获取长度
-
hive> select length(concat_ws('.','www','baidu','com')) from dual;
OK
-
-- split拆分
-
hive> select split(concat_ws('.','www','baidu','com'),'\\.') from dual;
OK
["www","baidu","com"]
Time taken: 0.084 seconds, Fetched: 1 row(s)
-
-- 拆分换行
hive> select explode(split(concat_ws('.','www','baidu','com'),'\\.') ) from dual;
OK
www
baidu
com
-
-- 大写转换小写
hive> select lower('ABC') from dual;
OK
abc
-
-
-- 小写转换大写
hive> select upper('abc') from dual;
OK
ABC
hive> select current_date from dual;
OK
2018-06-07
-- 返回unix时间搓
hive> select unix_timestamp() from dual;
OK
1528403209
-- current_timestamp返回年月入时分秒
hive> select current_timestamp from dual;
OK
2018-06-07 16:35:12.752
Time taken: 0.217 seconds, Fetched: 1 row(s)
-- 获取年月日
hive> select to_date('2018-06-07 16:44:44') from dual;
OK
2018-06-07
-- 获取年
hive> select year('2018-06-07 16:44:44') from dual;
OK
2018
-- 获取月
hive> select month('2018-06-07 16:44:44') from dual;
OK
6
-- 获取日
hive> select day('2018-06-07 16:44:44') from dual;
OK
7
-- 获取小时
hive> select hour('2018-06-07 16:44:44') from dual;
OK
16
-- 获取分钟
hive> select minute('2018-06-07 16:44:44') from dual;
OK
44
-- 获取秒
hive> select second('2018-06-07 16:44:44') from dual;
OK
-- 时间天相加
hive> select date_add('2018-06-07',10) from dual;
OK
2018-06-17
-- 时间天相减
hive> select date_sub('2018-06-17',10) from dual;
OK
2018-06-07
四.自定义函数