static ArrayList<GenericUDAFEvaluator> getUDAFEvaluators( ArrayList<AggregationDesc> aggs) { ArrayList<GenericUDAFEvaluator> result = new ArrayList<GenericUDAFEvaluator>(); for (int i = 0; i < aggs.size(); i++) { result.add(aggs.get(i).getGenericUDAFEvaluator()); } return result; }
@Override public void init(AggregationDesc desc) throws HiveException { GenericUDAFBloomFilterEvaluator udafBloomFilter = (GenericUDAFBloomFilterEvaluator) desc.getGenericUDAFEvaluator(); expectedEntries = udafBloomFilter.getExpectedEntries(); }
@Override public void init(AggregationDesc desc) throws HiveException { GenericUDAFBloomFilterEvaluator udafBloomFilter = (GenericUDAFBloomFilterEvaluator) desc.getGenericUDAFEvaluator(); expectedEntries = udafBloomFilter.getExpectedEntries(); }
public String getExprString() { StringBuilder sb = new StringBuilder(); sb.append(genericUDAFName); sb.append("("); if (distinct) { sb.append("DISTINCT "); } boolean first = true; for (ExprNodeDesc exp : parameters) { if (first) { first = false; } else { sb.append(", "); } sb.append(exp.getExprString()); } String evaluatorExpr = getGenericUDAFEvaluator().getExprString(); if (evaluatorExpr != null && !evaluatorExpr.isEmpty()) { sb.append(", "); sb.append(evaluatorExpr); } sb.append(")"); return sb.toString(); } }
public String getExprString() { StringBuilder sb = new StringBuilder(); sb.append(genericUDAFName); sb.append("("); if (distinct) { sb.append("DISTINCT "); } boolean first = true; for (ExprNodeDesc exp : parameters) { if (first) { first = false; } else { sb.append(", "); } sb.append(exp.getExprString()); } String evaluatorExpr = getGenericUDAFEvaluator().getExprString(); if (evaluatorExpr != null && !evaluatorExpr.isEmpty()) { sb.append(", "); sb.append(evaluatorExpr); } sb.append(")"); return sb.toString(); } }
/** * Checks if this grouping is like distinct, which means that all non-distinct grouping * columns behave like they were distinct - for example min and max operators. */ public boolean isDistinctLike() { ArrayList<AggregationDesc> aggregators = getAggregators(); for (AggregationDesc ad : aggregators) { if (!ad.getDistinct()) { GenericUDAFEvaluator udafEval = ad.getGenericUDAFEvaluator(); UDFType annot = AnnotationUtils.getAnnotation(udafEval.getClass(), UDFType.class); if (annot == null || !annot.distinctLike()) { return false; } } } return true; }
/** * Checks if this grouping is like distinct, which means that all non-distinct grouping * columns behave like they were distinct - for example min and max operators. */ public boolean isDistinctLike() { ArrayList<AggregationDesc> aggregators = getAggregators(); for (AggregationDesc ad : aggregators) { if (!ad.getDistinct()) { GenericUDAFEvaluator udafEval = ad.getGenericUDAFEvaluator(); UDFType annot = AnnotationUtils.getAnnotation(udafEval.getClass(), UDFType.class); if (annot == null || !annot.distinctLike()) { return false; } } } return true; }
GenericUDAFEvaluator genericUDAFEvaluator = desc.getGenericUDAFEvaluator(); GenericUDAFInfo udaf = SemanticAnalyzer.getGenericUDAFInfo(genericUDAFEvaluator, amode, aggParameters);
private static ImmutablePair<VectorAggregationDesc,String> getVectorAggregationDesc( AggregationDesc aggrDesc, VectorizationContext vContext) throws HiveException { String aggregateName = aggrDesc.getGenericUDAFName(); List<ExprNodeDesc> parameterList = aggrDesc.getParameters(); final int parameterCount = parameterList.size(); final GenericUDAFEvaluator.Mode udafEvaluatorMode = aggrDesc.getMode(); /* * Look at evaluator to get output type info. */ GenericUDAFEvaluator evaluator = aggrDesc.getGenericUDAFEvaluator(); ObjectInspector[] parameterObjectInspectors = new ObjectInspector[parameterCount]; for (int i = 0; i < parameterCount; i++) { TypeInfo typeInfo = parameterList.get(i).getTypeInfo(); parameterObjectInspectors[i] = TypeInfoUtils .getStandardWritableObjectInspectorFromTypeInfo(typeInfo); } // The only way to get the return object inspector (and its return type) is to // initialize it... ObjectInspector returnOI = evaluator.init( aggrDesc.getMode(), parameterObjectInspectors); final TypeInfo outputTypeInfo = TypeInfoUtils.getTypeInfoFromTypeString(returnOI.getTypeName()); return getVectorAggregationDesc( aggregateName, parameterList, evaluator, outputTypeInfo, udafEvaluatorMode, vContext); }
for (int i = 0; i < aggregationEvaluators.length; i++) { AggregationDesc agg = conf.getAggregators().get(i); aggregationEvaluators[i] = agg.getGenericUDAFEvaluator();
GenericUDAFEvaluator genericUDAFEvaluator = desc.getGenericUDAFEvaluator(); GenericUDAFInfo udaf = SemanticAnalyzer.getGenericUDAFInfo(genericUDAFEvaluator, amode, aggParameters);
for (int i = 0; i < aggregationEvaluators.length; i++) { AggregationDesc agg = conf.getAggregators().get(i); aggregationEvaluators[i] = agg.getGenericUDAFEvaluator();
params, false, Mode.PARTIAL1); GenericUDAFBloomFilterEvaluator bloomFilterEval = (GenericUDAFBloomFilterEvaluator) bloomFilter.getGenericUDAFEvaluator(); bloomFilterEval.setSourceOperator(selectOp); false, false), bloomFilterFinalParams, false, Mode.FINAL); GenericUDAFBloomFilterEvaluator bloomFilterEval = (GenericUDAFBloomFilterEvaluator) bloomFilter.getGenericUDAFEvaluator(); bloomFilterEval.setSourceOperator(selectOp); if (sjHint != null && sjHint.getNumEntries() > 0) {
aggregationEvaluators[i] = agg.getGenericUDAFEvaluator();
aggregationEvaluators[i] = agg.getGenericUDAFEvaluator();
(GenericUDAFBloomFilterEvaluator) agg.getGenericUDAFEvaluator(); if (udafBloomFilterEvaluator.hasHintEntries()) { return null; // Created using hint, skip it
FunctionRegistry.getGenericUDAFEvaluator("bloom_filter", aggFnOIs, false, false), params, false, Mode.PARTIAL1); GenericUDAFBloomFilterEvaluator bloomFilterEval = (GenericUDAFBloomFilterEvaluator) bloomFilter.getGenericUDAFEvaluator(); bloomFilterEval.setSourceOperator(selectOp); bloomFilterEval.setMaxEntries(parseContext.getConf().getLongVar(ConfVars.TEZ_MAX_BLOOM_FILTER_ENTRIES)); false, false), bloomFilterFinalParams, false, Mode.FINAL); GenericUDAFBloomFilterEvaluator bloomFilterEval = (GenericUDAFBloomFilterEvaluator) bloomFilter.getGenericUDAFEvaluator(); bloomFilterEval.setSourceOperator(selectOp); bloomFilterEval.setMaxEntries(parseContext.getConf().getLongVar(ConfVars.TEZ_MAX_BLOOM_FILTER_ENTRIES));
(GenericUDAFBloomFilterEvaluator) agg.getGenericUDAFEvaluator(); long expectedEntries = udafBloomFilterEvaluator.getExpectedEntries(); if (expectedEntries == -1 || expectedEntries >
if (newAggrList != null && newAggrList.size() > 0) { for (AggregationDesc aggregationDesc : newAggrList) { rewriteQueryCtx.setEval(aggregationDesc.getGenericUDAFEvaluator()); aggrExprNode = (ExprNodeColumnDesc) aggregationDesc.getParameters().get(0); rewriteQueryCtx.setAggrExprNode(aggrExprNode);
static ArrayList<GenericUDAFEvaluator> getUDAFEvaluators( ArrayList<AggregationDesc> aggs) { ArrayList<GenericUDAFEvaluator> result = new ArrayList<GenericUDAFEvaluator>(); for (int i = 0; i < aggs.size(); i++) { result.add(aggs.get(i).getGenericUDAFEvaluator()); } return result; }