@Override public GenericUDAFEvaluator getEvaluator(GenericUDAFParameterInfo info) throws SemanticException { TypeInfo[] parameters = info.getParameters(); GenericUDAFSumEvaluator eval = (GenericUDAFSumEvaluator) getEvaluator(parameters); eval.setWindowing(info.isWindowing()); eval.setSumDistinct(info.isDistinct()); return eval; }
@Override public AggregationBuffer getNewAggregationBuffer() throws HiveException { NGramAggBuf result = new NGramAggBuf(); result.nge = new NGramEstimator(); reset(result); return result; }
@Override public void iterate(AggregationBuffer agg, Object[] parameters) throws HiveException { RankBuffer rb = (RankBuffer) agg; int c = GenericUDAFRank.compare(rb.currVal, outputOI, parameters, inputOI); rb.incrRowNum(); if (rb.currentRowNum == 1 || c != 0) { nextRank(rb); rb.currVal = GenericUDAFRank.copyToStandardObject(parameters, inputOI, ObjectInspectorCopyOption.JAVA); } rb.addRank(); }
private Object runPartial2Final(List<Object[]> values) throws Exception { GenericUDAFEvaluator eval = evaluatorFactory.getEvaluator(info); eval.init(GenericUDAFEvaluator.Mode.FINAL, partialOIs); AggregationBuffer buf = eval.getNewAggregationBuffer(); for (Object partialResult : runPartial2(runPartial1(values))) { eval.merge(buf, partialResult); } return eval.terminate(buf); }
private Object runComplete(List<Object[]> values) throws SemanticException, HiveException { GenericUDAFEvaluator eval = evaluatorFactory.getEvaluator(info); eval.init(GenericUDAFEvaluator.Mode.COMPLETE, info.getParameterObjectInspectors()); AggregationBuffer agg = eval.getNewAggregationBuffer(); for (Object[] parameters : values) { eval.iterate(agg, parameters); } return eval.terminate(agg); }
@Override public Object evaluate(DeferredObject[] arguments) throws HiveException { for (int i = 0; i < arguments.length; i++) { Object ai = arguments[i].get(); if (ai == null) { continue; } return returnOIResolver.convertIfNecessary(ai, argumentOIs[i]); } return null; }
public GenericUDAFExecutor(GenericUDAFResolver2 evaluatorFactory, GenericUDAFParameterInfo info) throws Exception { this.evaluatorFactory = evaluatorFactory; this.info = info; GenericUDAFEvaluator eval0 = evaluatorFactory.getEvaluator(info); partialOIs = new ObjectInspector[] { eval0.init(GenericUDAFEvaluator.Mode.PARTIAL1, info.getParameterObjectInspectors()) }; }
private void runAndVerify(Object[] v, Object expResult, GenericUDF udf) throws HiveException { DeferredObject[] args = new DeferredObject[v.length]; for (int i = 0; i < v.length; i++) { args[i] = new DeferredJavaObject(getWritable(v[i])); } Object output = udf.evaluate(args); output = parseOutput(output); assertEquals("greatest() test ", expResult, output != null ? output : null); }
private void runAndVerify(Object[] v, Object expResult, GenericUDF udf) throws HiveException { DeferredObject[] args = new DeferredObject[v.length]; for (int i = 0; i < v.length; i++) { args[i] = new DeferredJavaObject(getWritable(v[i])); } Object output = udf.evaluate(args); output = parseOutput(output); assertEquals("greatest() test ", expResult, output != null ? output : null); }
@Override public AggregationBuffer getNewAggregationBuffer() throws HiveException { PercentileAggBuf result = new PercentileAggBuf(); result.histogram = new NumericHistogram(); reset(result); return result; }
@Override public AggregationBuffer getNewAggregationBuffer() throws HiveException { AggregationBuffer underlying = wrappedEval.getNewAggregationBuffer(); return new State(underlying); }
@Override public AggregationBuffer getNewAggregationBuffer() throws HiveException { AggregationBuffer underlying = wrappedEval.getNewAggregationBuffer(); return new State(underlying); }
@Override public AggregationBuffer getNewAggregationBuffer() throws HiveException { BooleanStatsAgg result = new BooleanStatsAgg(); reset(result); return result; }
public void testVoids() throws HiveException { GenericUDFGreatest udf = new GenericUDFGreatest(); ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory.writableVoidObjectInspector; ObjectInspector valueOI2 = PrimitiveObjectInspectorFactory.writableIntObjectInspector; ObjectInspector valueOI3 = PrimitiveObjectInspectorFactory.writableStringObjectInspector; ObjectInspector[] arguments = { valueOI1, valueOI2, valueOI3 }; udf.initialize(arguments); runAndVerify(new Object[] { null, 1, "test"}, null, udf); }
public void testAddMonthsByte() throws HiveException { GenericUDFAddMonths udf = new GenericUDFAddMonths(); ObjectInspector valueOI0 = PrimitiveObjectInspectorFactory.writableStringObjectInspector; ObjectInspector valueOI1 = PrimitiveObjectInspectorFactory.writableByteObjectInspector; ObjectInspector[] arguments = { valueOI0, valueOI1 }; udf.initialize(arguments); // short runAndVerify("2014-01-14", (byte) 1, "2014-02-14", udf); }
private Object runPartialFinal(List<Object[]> values) throws Exception { GenericUDAFEvaluator eval = evaluatorFactory.getEvaluator(info); eval.init(GenericUDAFEvaluator.Mode.FINAL, partialOIs); AggregationBuffer buf = eval.getNewAggregationBuffer(); for (Object partialResult : runPartial1(values)) { eval.merge(buf, partialResult); } return eval.terminate(buf); }