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)

  • 相关阅读:
    洛谷 P3521 [POI2011]ROT-Tree Rotations 解题报告
    洛谷 P1640 [SCOI2010]连续攻击游戏 解题报告
    vector-pop_back
    vector-push_back
    vector-push_back
    vector-max_size
    vector-max_size
    vector-insert
    vector-insert
    vector-front
  • 原文地址:https://www.cnblogs.com/itxuexiwang/p/6263110.html
Copyright © 2011-2022 走看看