Hive自定义函数

本文详细介绍了如何在Hive中创建自定义函数,包括UDF、UDTF的实现步骤,从继承相应类、编写evaluate方法到添加Description,再到打包、发送、注册函数。通过实例展示了自定义函数在统计每个商家每个标签的总数、排序、聚合等场景的应用,以及遇到ClassNotFoundException问题的解决方法。
摘要由CSDN通过智能技术生成

0、自定义函数类型

(1)UDF:user define function,输入单行,输出单行,类似于 format_number(age,'000')

(2)UDTF:user define table-gen function,输入单行,输出多行,类似于 explode(array);

(3)UDAF:user define aggr function,输入多行,输出单行,类似于 sum(xxx)

1、自定义UDF函数

(1)继承UDF类

(2)编写evaluate方法,方法名必须是"evaluate",返回值类型不固定,即方法最后返回值的类型

(3)必须添加Description描述,包括name(函数名)、value(desc方法时出现的提示)和extended(方法的扩展信息)

(4)将方法打包并发送到"/soft/hive/lib"目录下,重启hive

(5)注册函数:永久注册或临时注册

create function myudf as 'com.oldboy.hive.udf.MyUDF'    //永久
create temporary function myudf as 'com.oldboy.hive.udf.MyUDF'    //临时

(6)eg:使用自定义函数统计每个商家每个标签的总数

(6-0)虚列(lateral view):将一列炸开后,使其他字段能够自动补全

(6-1)数据格式如下

77287793	{"reviewPics":null,"extInfoList":[{"title":"contentTags","values":["服务热情","音响效果好"],"desc":"","defineType":0},{"title":"tagIds","values":["22","173"],"desc":"","defineType":0}],"expenseList":null,"reviewIndexes":[2],"scoreList":null}

(6-2)自定义函数代码

public class ParseJSON extends UDF {
    public List<String> evaluate(String json) {
        List<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值