6.其他函数

本文介绍了Hive中处理时间日期的函数,如current_date(),date_add(),year()等,以及取整函数ceil(),floor(),round()。此外,还讲解了如何使用str_to_map()和named_struct()进行数据转换。对于自定义函数,文章详细阐述了从编写、打包到在Hive中注册和使用的步骤,包括添加jar包和创建UDF函数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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', ',', ':');   //属性之间分隔符',',kv分隔符为':'

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值