Exemplo n.º 1
0
  @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;
  }
Exemplo n.º 2
0
 @Override
 public ObjectInspector init(Mode m, ObjectInspector[] parameters) throws HiveException {
   assert (parameters.length == 1);
   super.init(m, parameters);
   result = new LongWritable(0);
   inputOI = (PrimitiveObjectInspector) parameters[0];
   outputOI =
       (PrimitiveObjectInspector)
           ObjectInspectorUtils.getStandardObjectInspector(
               inputOI, ObjectInspectorCopyOption.JAVA);
   return PrimitiveObjectInspectorFactory.writableLongObjectInspector;
 }
Exemplo n.º 3
0
    @Override
    public ObjectInspector init(Mode m, ObjectInspector[] parameters) throws HiveException {
      assert (parameters.length == 1);
      super.init(m, parameters);
      result = new HiveDecimalWritable(HiveDecimal.ZERO);
      inputOI = (PrimitiveObjectInspector) parameters[0];
      // The output precision is 10 greater than the input which should cover at least
      // 10b rows. The scale is the same as the input.
      DecimalTypeInfo outputTypeInfo = null;
      if (mode == Mode.PARTIAL1 || mode == Mode.COMPLETE) {
        int precision = Math.min(HiveDecimal.MAX_PRECISION, inputOI.precision() + 10);
        outputTypeInfo = TypeInfoFactory.getDecimalTypeInfo(precision, inputOI.scale());
      } else {
        outputTypeInfo = (DecimalTypeInfo) inputOI.getTypeInfo();
      }
      ObjectInspector oi =
          PrimitiveObjectInspectorFactory.getPrimitiveWritableObjectInspector(outputTypeInfo);
      outputOI =
          (PrimitiveObjectInspector)
              ObjectInspectorUtils.getStandardObjectInspector(oi, ObjectInspectorCopyOption.JAVA);

      return oi;
    }