Hive自定义函数理论知识总结

Hive自定义函数理论知识总结

1、普通UDF

单行输入(基本类型) --> 输出一个结果
继承UDF,提供evaluate()

2、复制类型的UDF:

GenericUDF 单行输入(包含复杂类型) -->输出一个结果
继承GenericUDF,init()进行初始化输入输出的格式,及合法性判断
evaluate() 实际业务逻辑处理

3、聚合函数:GenericUDAF

多行输入—单行输出
iterate()、merge()、terminatePartial()、terminate()
对应的流程:
partiall: iterate()+terminatePartial()
map()+:
partial2:merge()、terminatePartial()
combiner()+
final:merge()、terminate()
reducer()
complete:iterate()、terminate()
map()
开始输入:iterate(agg,args),读取args参数列表,处理完放入agg对象中缓存
中间根据情况来对应调用方法:
partial2 – 对应combiner阶段 – 对应merge() 和 terminatePartial()
final – 对应reducer阶段 – 对应merge()和terminate()

最终输出:Object terminate(agg),获取agg对象缓存,处理成为Object对象

4、表生成函数:GenericUDTF

单行输入 -->多行多列
initialize()进行初始化,一般来说,要定义两个list用来分别指定保存列名和值的类型
process()中实际业务逻辑处理,输出保证和值的类型一致
explode(array/map)

json_turple(json…,col1,col2…coln)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值