zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    Java:多线程<一>
    Java:Exception
    Java: 内部类
    Ubuntu安装jdk
    ubuntu搜狗拼音安装
    录音-树莓派USB摄像头话筒
    leetcode 最小栈
    leetcode 编辑距离 动态规划
    leetcode 最小覆盖字串
    leetcode 最长上升子序列 动态规划
  • 原文地址:https://www.cnblogs.com/itxuexiwang/p/6263110.html
Copyright © 2011-2022 走看看