public ObjectInspector init(Mode m, ObjectInspector[] parameters) throws HiveException {
    // This function should be Overridden in every sub class
    // And the sub class should call super.init(m, parameters) to get mode set.
    mode = m;
    partitionEvaluator = null;
    return null;
  }
Initialize the evaluator.

@param m
         The mode of aggregation.
@param parameters
         The ObjectInspector for the parameters: In PARTIAL1 and COMPLETE
         mode, the parameters are original data; In PARTIAL2 and FINAL
         mode, the parameters are just partial aggregations (in that case,
         the array will always have a single element).
@return The ObjectInspector for the return value. In PARTIAL1 and PARTIAL2
        mode, the ObjectInspector for the return value of
        terminatePartial() call; In FINAL and COMPLETE mode, the
        ObjectInspector for the return value of terminate() call.

        NOTE: We need ObjectInspector[] (in addition to the TypeInfo[] in
        GenericUDAFResolver) for 2 reasons: 1. ObjectInspector contains
        more information than TypeInfo; and GenericUDAFEvaluator.init at
        execution time. 2. We call GenericUDAFResolver.getEvaluator at
        compilation time,
ql/src/java/org/apache/hadoop/hive/ql/udf/generic/GenericUDAFEvaluator.java