public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { FileSinkOperator FS = (FileSinkOperator) nd; int shift = stack.get(stack.size() - 2) instanceof SelectOperator ? 0 : 1; GroupByOperator cGBY = (GroupByOperator) stack.get(stack.size() - 3 + shift); ReduceSinkOperator RS = (ReduceSinkOperator) stack.get(stack.size() - 4 + shift); if (RS.getConf().getNumReducers() != 1 || !RS.getConf().getKeyCols().isEmpty()) { return null; } GroupByOperator pGBY = (GroupByOperator) stack.get(stack.size() - 5 + shift); Path fileName = FS.getConf().getFinalDirName(); TableDesc tsDesc = createIntermediateFS(pGBY, fileName); for (AggregationDesc aggregation : cGBY.getConf().getAggregators()) { List<ExprNodeDesc> parameters = aggregation.getParameters(); aggregation.setParameters(ExprNodeDescUtils.backtrack(parameters, cGBY, RS)); } pctx.setFetchTabledesc(tsDesc); pctx.setFetchSource(cGBY); pctx.setFetchSink(SimpleFetchOptimizer.replaceFSwithLS(FS, "NULL")); RS.setParentOperators(null); RS.setChildOperators(null); cGBY.setParentOperators(null); return null; }
public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { FileSinkOperator FS = (FileSinkOperator) nd; int shift = stack.get(stack.size() - 2) instanceof SelectOperator ? 0 : 1; GroupByOperator cGBY = (GroupByOperator) stack.get(stack.size() - 3 + shift); ReduceSinkOperator RS = (ReduceSinkOperator) stack.get(stack.size() - 4 + shift); if (RS.getConf().getNumReducers() != 1 || !RS.getConf().getKeyCols().isEmpty()) { return null; } GroupByOperator pGBY = (GroupByOperator) stack.get(stack.size() - 5 + shift); Path fileName = FS.getConf().getFinalDirName(); TableDesc tsDesc = createIntermediateFS(pGBY, fileName); for (AggregationDesc aggregation : cGBY.getConf().getAggregators()) { List<ExprNodeDesc> parameters = aggregation.getParameters(); aggregation.setParameters(ExprNodeDescUtils.backtrack(parameters, cGBY, RS)); } pctx.setFetchTabledesc(tsDesc); pctx.setFetchSource(cGBY); pctx.setFetchSink(SimpleFetchOptimizer.replaceFSwithLS(FS, "NULL")); RS.setParentOperators(null); RS.setChildOperators(null); cGBY.setParentOperators(null); return null; }
private static AggregationDesc buildAggregationDescCountStar( VectorizationContext ctx) { AggregationDesc agg = new AggregationDesc(); agg.setGenericUDAFName("count"); agg.setMode(GenericUDAFEvaluator.Mode.PARTIAL1); agg.setParameters(new ArrayList<ExprNodeDesc>()); agg.setGenericUDAFEvaluator(new GenericUDAFCount.GenericUDAFCountEvaluator()); return agg; }
paramC.setColumn("VALUE._col" + pos); parameters.add(paramC); aggr.setParameters(parameters); aggr.setDistinct(false); aggr.setMode(Mode.FINAL);
paramC.setColumn("VALUE._col" + pos); parameters.add(paramC); aggr.setParameters(parameters); aggr.setDistinct(false); aggr.setMode(Mode.FINAL);
aggr.setParameters(ExprNodeDescUtils.backtrack(aggr.getParameters(), cGBYr, cRS));
aggr.setParameters(ExprNodeDescUtils.backtrack(aggr.getParameters(), cGBYr, cRS));
agg.setGenericUDAFName(aggregate); agg.setMode(mode); agg.setParameters(params);
public Object process(Node nd, Stack<Node> stack, NodeProcessorCtx procCtx, Object... nodeOutputs) throws SemanticException { FileSinkOperator FS = (FileSinkOperator) nd; int shift = stack.get(stack.size() - 2) instanceof SelectOperator ? 0 : 1; GroupByOperator cGBY = (GroupByOperator) stack.get(stack.size() - 3 + shift); ReduceSinkOperator RS = (ReduceSinkOperator) stack.get(stack.size() - 4 + shift); if (RS.getConf().getNumReducers() != 1 || !RS.getConf().getKeyCols().isEmpty()) { return null; } GroupByOperator pGBY = (GroupByOperator) stack.get(stack.size() - 5 + shift); Path fileName = FS.getConf().getFinalDirName(); TableDesc tsDesc = createIntermediateFS(pGBY, fileName); for (AggregationDesc aggregation : cGBY.getConf().getAggregators()) { List<ExprNodeDesc> parameters = aggregation.getParameters(); aggregation.setParameters(ExprNodeDescUtils.backtrack(parameters, cGBY, RS)); } pctx.setFetchTabledesc(tsDesc); pctx.setFetchSource(cGBY); pctx.setFetchSink(SimpleFetchOptimizer.replaceFSwithLS(FS, "NULL")); RS.setParentOperators(null); RS.setChildOperators(null); cGBY.setParentOperators(null); return null; }
paramC.setColumn("VALUE._col" + pos); parameters.add(paramC); aggr.setParameters(parameters); aggr.setDistinct(false); aggr.setMode(Mode.FINAL);
aggr.setParameters(ExprNodeDescUtils.backtrack(aggr.getParameters(), cGBYr, cRS));