public PTFExpressionDef buildExpressionDef(ShapeDetails inpShape, ASTNode arg) throws HiveException { PTFExpressionDef argDef = new PTFExpressionDef(); ExprNodeDesc exprNode = semAly.genExprNodeDesc(arg, inpShape.getRr(), inpShape.getTypeCheckCtx()); ExprNodeEvaluator exprEval = WindowingExprNodeEvaluatorFactory.get(llInfo, exprNode); ObjectInspector oi = initExprNodeEvaluator(exprEval, exprNode, inpShape); argDef.setExpressionTreeString(arg.toStringTree()); argDef.setExprNode(exprNode); argDef.setExprEvaluator(exprEval); argDef.setOI(oi); return argDef; }
public PTFExpressionDef(PTFExpressionDef e) { expressionTreeString = e.getExpressionTreeString(); exprNode = e.getExprNode(); exprEvaluator = e.getExprEvaluator(); OI = e.getOI(); }
void add(String name, PTFExpressionDef arg) { symbolExprsNames.add(name); symbolExprsEvaluators.add(arg.getExprEvaluator()); symbolExprsOIs.add(arg.getOI()); symbolExprsDecs.add(arg.getExprNode()); } }
protected void initialize(PTFExpressionDef eDef, ShapeDetails inpShape) throws HiveException { ExprNodeDesc exprNode = eDef.getExprNode(); ExprNodeEvaluator exprEval = WindowingExprNodeEvaluatorFactory.get(llInfo, exprNode); ObjectInspector oi = initExprNodeEvaluator(exprEval, exprNode, inpShape); eDef.setExprEvaluator(exprEval); eDef.setOI(oi); }
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException { List<PTFExpressionDef> args = def.getArgs(); List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>(); ObjectInspector[] funcArgOIs = null; if (args != null) { for (PTFExpressionDef arg : args) { argOIs.add(arg.getOI()); } funcArgOIs = new ObjectInspector[args.size()]; funcArgOIs = argOIs.toArray(funcArgOIs); } GenericUDAFEvaluator wFnEval = def.getWFnEval(); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); def.setWFnEval(wFnEval); def.setOI(OI); }
private static ExprNodeDesc[] getPartitionExprNodeDescs(List<PTFExpressionDef> partitionExpressions) { final int size = partitionExpressions.size(); ExprNodeDesc[] exprNodeDescs = new ExprNodeDesc[size]; for (int i = 0; i < size; i++) { exprNodeDescs[i] = partitionExpressions.get(i).getExprNode(); } return exprNodeDescs; }
/** * Calculate the partial result sum + count giving a parition range * @return a 2-element Object array of [count long, sum ResultType] */ private Object[] calcPartialResult(PTFPartitionIterator<Object> pItr, LeadLagInfo leadLagInfo) throws HiveException { // To handle the case like SUM(LAG(f)) over(), aggregation function includes // LAG/LEAD call PTFOperator.connectLeadLagFunctionsToPartition(leadLagInfo, pItr); AggregationBuffer aggBuffer = wrappedEvaluator.getNewAggregationBuffer(); Object[] argValues = new Object[parameters == null ? 0 : parameters.size()]; while(pItr.hasNext()) { Object row = pItr.next(); int i = 0; if ( parameters != null ) { for(PTFExpressionDef param : parameters) { argValues[i++] = param.getExprEvaluator().evaluate(row); } } wrappedEvaluator.aggregate(aggBuffer, argValues); } // The object [count LongWritable, sum ResultType] is reused during evaluating Object[] partial = (Object[])wrappedEvaluator.terminatePartial(aggBuffer); return new Object[] {((LongWritable)partial[0]).get(), ObjectInspectorUtils.copyToStandardObject(partial[1], outputOI)}; }
ObjectInspector symbolNameArgOI = symbolNameArg.getOI(); symbolNameArg.getExpressionTreeString())); ObjectInspector symolExprArgOI = symolExprArg.getOI(); if ( (symolExprArgOI.getCategory() != ObjectInspector.Category.PRIMITIVE) || ((PrimitiveObjectInspector)symolExprArgOI).getPrimitiveCategory() != "must be a boolean expression", symolExprArg.getExpressionTreeString()));
public Object computeValue(Object row) throws HiveException { Object o = expressionDef.getExprEvaluator().evaluate(row); return ObjectInspectorUtils.copyToStandardObject(o, expressionDef.getOI()); }
static void setupWdwFnEvaluator(WindowFunctionDef def) throws HiveException { List<PTFExpressionDef> args = def.getArgs(); List<ObjectInspector> argOIs = new ArrayList<ObjectInspector>(); ObjectInspector[] funcArgOIs = null; if (args != null) { for (PTFExpressionDef arg : args) { argOIs.add(arg.getOI()); } funcArgOIs = new ObjectInspector[args.size()]; funcArgOIs = argOIs.toArray(funcArgOIs); } GenericUDAFEvaluator wFnEval = def.getWFnEval(); ObjectInspector OI = wFnEval.init(GenericUDAFEvaluator.Mode.COMPLETE, funcArgOIs); def.setWFnEval(wFnEval); def.setOI(OI); }
protected void initialize(PTFExpressionDef eDef, ShapeDetails inpShape) throws HiveException { ExprNodeDesc exprNode = eDef.getExprNode(); ExprNodeEvaluator exprEval = WindowingExprNodeEvaluatorFactory.get(llInfo, exprNode); ObjectInspector oi = initExprNodeEvaluator(exprEval, exprNode, inpShape); eDef.setExprEvaluator(exprEval); eDef.setOI(oi); }
void add(String name, PTFExpressionDef arg) { symbolExprsNames.add(name); symbolExprsEvaluators.add(arg.getExprEvaluator()); symbolExprsOIs.add(arg.getOI()); symbolExprsDecs.add(arg.getExprNode()); } }
@Explain(displayName = "arguments") public String getArgsExplain() { if (args == null) { return null; } StringBuilder builder = new StringBuilder(); for (PTFExpressionDef expression : args) { if (builder.length() > 0) { builder.append(", "); } builder.append(expression.getExprNode().getExprString()); } return builder.toString(); }
if (wFn.getArgs() != null) { for (PTFExpressionDef arg : wFn.getArgs()) { args[j][a++] = arg.getExprEvaluator().evaluate(iRow);
ObjectInspector symbolNameArgOI = symbolNameArg.getOI(); symbolNameArg.getExpressionTreeString())); ObjectInspector symolExprArgOI = symolExprArg.getOI(); if ( (symolExprArgOI.getCategory() != ObjectInspector.Category.PRIMITIVE) || ((PrimitiveObjectInspector)symolExprArgOI).getPrimitiveCategory() != "must be a boolean expression", symolExprArg.getExpressionTreeString()));
public PTFExpressionDef(PTFExpressionDef e) { expressionTreeString = e.getExpressionTreeString(); exprNode = e.getExprNode(); exprEvaluator = e.getExprEvaluator(); OI = e.getOI(); }
public PTFExpressionDef buildExpressionDef(ShapeDetails inpShape, ASTNode arg) throws HiveException { PTFExpressionDef argDef = new PTFExpressionDef(); ExprNodeDesc exprNode = semAly.genExprNodeDesc(arg, inpShape.getRr(), inpShape.getTypeCheckCtx()); ExprNodeEvaluator exprEval = WindowingExprNodeEvaluatorFactory.get(llInfo, exprNode); ObjectInspector oi = initExprNodeEvaluator(exprEval, exprNode, inpShape); argDef.setExpressionTreeString(arg.toStringTree()); argDef.setExprNode(exprNode); argDef.setExprEvaluator(exprEval); argDef.setOI(oi); return argDef; }
private void validateAndSetupPatternStr(MatchPath evaluator, List<PTFExpressionDef> args) throws SemanticException { PTFExpressionDef symboPatternArg = args.get(0); ObjectInspector symbolPatternArgOI = symboPatternArg.getOI(); if ( !ObjectInspectorUtils.isConstantObjectInspector(symbolPatternArgOI) || (symbolPatternArgOI.getCategory() != ObjectInspector.Category.PRIMITIVE) || ((PrimitiveObjectInspector)symbolPatternArgOI).getPrimitiveCategory() != PrimitiveObjectInspector.PrimitiveCategory.STRING ) { throwErrorWithSignature("Currently the symbol Pattern must be a Constant String."); } evaluator.patternStr = ((ConstantObjectInspector)symbolPatternArgOI). getWritableConstantValue().toString(); }
protected void initialize(PTFExpressionDef eDef, ShapeDetails inpShape) throws HiveException { ExprNodeDesc exprNode = eDef.getExprNode(); ExprNodeEvaluator exprEval = WindowingExprNodeEvaluatorFactory.get(llInfo, exprNode); ObjectInspector oi = initExprNodeEvaluator(exprEval, exprNode, inpShape); eDef.setExprEvaluator(exprEval); eDef.setOI(oi); }
void add(String name, PTFExpressionDef arg) { symbolExprsNames.add(name); symbolExprsEvaluators.add(arg.getExprEvaluator()); symbolExprsOIs.add(arg.getOI()); symbolExprsDecs.add(arg.getExprNode()); } }