1.时间日期类
-- current_date() 返回当前日期
-- date_add(date, n) 返回从date开始n天之后的日期
-- date_sub(date, n) 返回从date开始n天之前的日期
-- datediff(date1, date2) 返回date1-date2的日期差
-- year(date) 返回日期的年份
-- month(date) 返回日期的月份
-- day(date) 返回日期的日
-- dayofweek(date) 返回星期几(星期日是第一天)
-- weekofyear(date) 返回今天数据第几周
2. 取整
函数声名 | 解释 |
---|---|
ceil(num) | 向上取整 |
floor(num) | 向下取整 |
round(num) | 四舍五入 |
3.包装函数
函数声名 | 解释 |
---|---|
str_to_map(str, field_sep, kv_sep) | 将str按照field_sep分段,每段以kv_sep分成key value,返回一个map |
named_struct(name1, col1, name2, col2,) | 将col2,col2,....包装为结构体,名字为name1,name2 |
举例:
-- str_to_map
select str_to_map('a:b,c:d,e:f', ',', ':');
select str_to_map('a:b,c:d,e:f', ',', ':')['a']; //返回b
select named_struct( //把一个表格捏成一个struct结构体
'name', name,
'orderdate', orderdate,
'cost', cost
) from business;
4.自定义函数
1.利用idea编写自定义函数
2.利用maven进行打包
3.将jar包上传到/opt/module/hive/lib
4.让jar包生效
方式一:重启hiveserver2
hive_services.sh restart
方式二: 在客户端热添加jar包
add jar /opt/modu1e/hive/1ib/hivep1ugin220411-1.0-SNAPSHOT.jar;
5.在hive中创建函数与jar包关联:
-- 将函数命名为mylen
create function my1en as 'com.atguigu.hive.MyUDF'; //MyUDF是主函数的名字
6.如果想要将这个函数删除
drop function mylen;