org.apache.hadoop.hive.ql.udf.generic
Interface GenericUDAFResolver2

All Superinterfaces:
GenericUDAFResolver
All Known Implementing Classes:
AbstractGenericUDAFResolver, GenericUDAFAverage, GenericUDAFBridge, GenericUDAFCollectList, GenericUDAFCollectSet, GenericUDAFComputeStats, GenericUDAFCorrelation, GenericUDAFCount, GenericUDAFCovariance, GenericUDAFCovarianceSample, GenericUDAFCumeDist, GenericUDAFDenseRank, GenericUDAFEWAHBitmap, GenericUDAFFirstValue, GenericUDAFHistogramNumeric, GenericUDAFLag, GenericUDAFLastValue, GenericUDAFLead, GenericUDAFLeadLag, GenericUDAFMax, GenericUDAFMin, GenericUDAFNTile, GenericUDAFPercentileApprox, GenericUDAFPercentRank, GenericUDAFRank, GenericUDAFRowNumber, GenericUDAFStd, GenericUDAFStdSample, GenericUDAFSum, GenericUDAFVariance, GenericUDAFVarianceSample

public interface GenericUDAFResolver2
extends GenericUDAFResolver

This interface extends the GenericUDAFResolver interface and provides more flexibility in terms of discovering the parameter types supplied to the UDAF. Implementations that extend this interface will also have access to extra information such as the specification of the DISTINCT qualifier or the invocation with the special wildcard character.

Note: The implementation of function does not have to handle the actual DISTINCT or wildcard implementation. This information is provided only to allow the function implementation to accept or reject such invocations. For example - the implementation of COUNT UDAF requires that the DISTINCT qualifier be supplied when more than one parameters are specified in the invocation. The actual filtering of data bound to parameter types for DISTINCT implementation is handled by the framework and not the COUNT UDAF implementation.


Method Summary
 GenericUDAFEvaluator getEvaluator(GenericUDAFParameterInfo info)
          Get the evaluator for the parameter types.
 
Methods inherited from interface org.apache.hadoop.hive.ql.udf.generic.GenericUDAFResolver
getEvaluator
 

Method Detail

getEvaluator

GenericUDAFEvaluator getEvaluator(GenericUDAFParameterInfo info)
                                  throws SemanticException
Get the evaluator for the parameter types. The reason that this function returns an object instead of a class is because it is possible that the object needs some configuration (that can be serialized). In that case the class of the object has to implement the Serializable interface. At execution time, we will deserialize the object from the plan and use it to evaluate the aggregations.

If the class of the object does not implement Serializable, then we will create a new instance of the class at execution time.

Parameters:
info - The parameter information that is applicable to the UDAF being invoked.
Throws:
SemanticException


Copyright © 2014 The Apache Software Foundation. All rights reserved.