码迷,mamicode.com
首页 > 其他好文 > 详细

HIVE函数UDAF 最大值

时间:2017-01-09 00:28:55      阅读:170      评论:0      收藏:0      [点我收藏+]

标签:imp   creat   void   second   exec   set   rate   ado   最大   

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 最大值

标签:imp   creat   void   second   exec   set   rate   ado   最大   

原文地址:http://www.cnblogs.com/itxuexiwang/p/6263110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!