HIVE函数UDAF 最大值
Posted 超超hd
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HIVE函数UDAF 最大值相关的知识,希望对你有一定的参考价值。
Maximum
package udf.hive.myudf; import org.apache.hadoop.hive.ql.exec.UDAF; import org.apache.hadoop.hive.ql.exec.UDAFEvaluator; import org.apache.hadoop.io.IntWritable; public class Maximum extends UDAF { public static class MaximumIntUDAFEvaluator implements UDAFEvaluator { private IntWritable result; public void init() { result = null; } public boolean iterate(IntWritable value) { if (value == null) { return true; } if (result == null) { result = new IntWritable(value.get()); } else { result.set(Math.max(result.get(), value.get())); } return true; } public IntWritable terminatePartial() { return result; } public boolean merge(IntWritable other) { return iterate(other); } public IntWritable terminate() { return result; } } }
然后通过mvn打包。
add JAR /home/cloudera/Desktop/myudf-0.0.3-SNAPSHOT.jar;
CREATE TEMPORARY FUNCTION my_max2 AS ‘udf.hive.myudf.Maximum‘;
hive> select pid from prouct;
OK
1
2
3
4
select my_max2(oid) from prouct;
OK
4
Time taken: 166.32 seconds, Fetched: 1 row(s)
以上是关于HIVE函数UDAF 最大值的主要内容,如果未能解决你的问题,请参考以下文章