Hadoop: The Definitive Guide has a good section on this. Chapter 12: Hive: User 
Defined Functions. It has a diagram that shows how things are called and when. 
The example I'm looking at shows this sequence:

(first instance)
init()
iterate(1)
iterate(2)
iterate(3)
terminatePartial()

(second instance)
init()
iterate(4)
iterate(2)
terminatePartial()

(then)
init()
merge(3)
merge(4)
terminate()

The UDAF being described is a max integer function, hence the merge ending up 
with the highest integer from each instance.

-Aurora

On Mar 11, 2011, at 9:54 AM, Christopher, Pat wrote:

> Ahh, perfect.  The docs don't agree terribly well but the case study is 
> great.  The context for when merge() gets called was not clear to me.
> 
> Thanks guys!
> 
> Pat
> 
> -----Original Message-----
> From: Steven Wong [mailto:sw...@netflix.com] 
> Sent: Thursday, March 10, 2011 6:24 PM
> To: user@hive.apache.org
> Cc: Christopher, Pat
> Subject: RE: UDAF documentation
> 
> Take a look at http://wiki.apache.org/hadoop/Hive/GenericUDAFCaseStudy, in 
> case you haven't found it already.
> 
> 
> -----Original Message-----
> From: Edward Capriolo [mailto:edlinuxg...@gmail.com] 
> Sent: Thursday, March 10, 2011 6:18 PM
> To: user@hive.apache.org
> Cc: Christopher, Pat
> Subject: Re: UDAF documentation
> 
> On Thu, Mar 10, 2011 at 8:27 PM, Christopher, Pat
> <patrick.christop...@hp.com> wrote:
>> Hi Guys,
>> 
>> I'm writing a UDAF to run against hive 0.5 or hive 0.7.  The documentation I
>> can find says to implement UDAFEvaluator and ensure that you implement
>> init() , aggregate() and evaluate().  However, all of the examples I can
>> find implement init(), iterate(), merge(), terminatePartial() and
>> terminate().
>> 
>> 
>> 
>> What's the difference and where I can find the documentation on how to write
>> a UDAF?
>> 
>> 
>> 
>> Thanks,
>> 
>> Pat
> 
> At time the documentation may lag behind the code. I would checkout
> the hive source code for the version you are working with and base
> your work on other already existing UDAF's that are similar.
> 
> Edward
> 

Reply via email to