hive udtf 实现函数问题

需求:实现函数trans(1,col1,col2,...),
例如:trans(1,id,ip1,ip2)=>
id,ip1
id,ip2
第一个参数是转置列不变的个数。
问题:现在新写了一个类,继承了GenericUDTF,实现了initialize,process和close方法,
(1),转置列不变的个数是不确定的,在initialize中怎么设置返回列的个数。
(2),close方法关闭什么
(3),我已经在java实现,可是打包放到hive执行结果就总是不对,
比如trans(2,id,ip,nna,nnb),多行记录时结果应该是=>
id1,ip1,nna1
id1,ip1,nnb1
id2,ip2,nna2
id2,ip2,nnb2
现在的结果总是
id1,ip1,nna1
id2,ip2,nna2

请各路大神教我一下吧

http://www.cnblogs.com/longjshz/p/5488748.html