hive-UDAF名词解释

本文介绍了UDAF的两个核心部分:参数校验与数据类型处理,并详细解释了三种运行模式(PARTIAL1, PARTIAL2, FINAL)及特殊情况COMPLETE的工作流程。通过AbstractGenericUDAFResolver、ObjectInspector等组件实现灵活的数据格式处理。

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

UDAF主要分为2个部分:第一个部分是对传入参数进行校验,数据类型的校验。然后根据传入的数据类型不同调用具体的处理逻辑。

AbstractGenericUDAFResolver:当需要使用UDAF时,需要继承AbstractGenericUDAFResolver抽象类

ObjectInspector:ObjectInspector接口使得Hive可以不拘泥于一种特定数据格式,使得数据流 1)在输入端和输出端切换不同的输入/输出格式 2)在不同的Operator上使用不同的数据格式。

PrimitiveObjectInspector:UDAF使用一个ObjectInspector来抽象化每一行数据的读取。上面使用的Primitive类型的数据,所以使PrimitiveObjectInspector来读取传入的参数

Evaluator:在Evaluator方法里面,对参数进行校验

Mode:

PARTIAL1:这个是mapreduce的map阶段:从原始数据到部分数据聚合,将会调用iterate()和terminatePartial()

PARTIAL2:这个是mapreduce的map端的Combiner阶段,负责在map端合并map的数据:从部分数据聚合到部分数据聚合:将会调用merge() 和 terminatePartial()  

FINAL: mapreduce的reduce阶段:从部分数据的聚合到完全聚合,将会调用merge()和terminate() 

COMPLETE: 如果出现了这个阶段,表示mapreduce只有map,没有reduce,所以map端就直接出结果了:从原始数据直接到完全聚合将会调用 iterate()和terminate()



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值