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; }
@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(); }
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(); }
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(); }
@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(); }
@Explain(displayName = "partition by", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) public String getPartitionExplain() { if (partition == null || partition.getExpressions() == null) { return null; } StringBuilder builder = new StringBuilder(); for (PTFExpressionDef expression : partition.getExpressions()) { if (builder.length() > 0) { builder.append(", "); } builder.append(expression.getExprNode().getExprString()); } return builder.toString(); }
@Explain(displayName = "partition by", explainLevels = { Level.USER, Level.DEFAULT, Level.EXTENDED }) public String getPartitionExplain() { if (partition == null || partition.getExpressions() == null) { return null; } StringBuilder builder = new StringBuilder(); for (PTFExpressionDef expression : partition.getExpressions()) { if (builder.length() > 0) { builder.append(", "); } builder.append(expression.getExprNode().getExprString()); } return builder.toString(); }
private static void fillInPTFEvaluators( List<WindowFunctionDef> windowsFunctions, String[] evaluatorFunctionNames, WindowFrameDef[] evaluatorWindowFrameDefs, List<ExprNodeDesc>[] evaluatorInputExprNodeDescLists) throws HiveException { final int functionCount = windowsFunctions.size(); for (int i = 0; i < functionCount; i++) { WindowFunctionDef winFunc = windowsFunctions.get(i); evaluatorFunctionNames[i] = winFunc.getName(); evaluatorWindowFrameDefs[i] = winFunc.getWindowFrame(); List<PTFExpressionDef> args = winFunc.getArgs(); if (args != null) { List<ExprNodeDesc> exprNodeDescList = new ArrayList<ExprNodeDesc>(); for (PTFExpressionDef arg : args) { exprNodeDescList.add(arg.getExprNode()); } evaluatorInputExprNodeDescLists[i] = exprNodeDescList; } } }
public PTFExpressionDef(PTFExpressionDef e) { expressionTreeString = e.getExpressionTreeString(); exprNode = e.getExprNode(); exprEvaluator = e.getExprEvaluator(); OI = e.getOI(); }
public PTFExpressionDef(PTFExpressionDef e) { expressionTreeString = e.getExpressionTreeString(); exprNode = e.getExprNode(); exprEvaluator = e.getExprEvaluator(); OI = e.getOI(); }
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); }
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); }
ExprNodeDesc exprNode = expression.getExprNode(); if (!(exprNode instanceof ExprNodeColumnDesc)) {
protected void setupKeysWrapper(ObjectInspector inputOI) throws HiveException { PartitionDef pDef = conf.getStartOfChain().getPartition(); List<PTFExpressionDef> exprs = pDef.getExpressions(); int numExprs = exprs.size(); ExprNodeEvaluator[] keyFields = new ExprNodeEvaluator[numExprs]; ObjectInspector[] keyOIs = new ObjectInspector[numExprs]; ObjectInspector[] currentKeyOIs = new ObjectInspector[numExprs]; for(int i=0; i<numExprs; i++) { PTFExpressionDef exprDef = exprs.get(i); /* * Why cannot we just use the ExprNodeEvaluator on the column? * - because on the reduce-side it is initialized based on the rowOI of the HiveTable * and not the OI of the parent of this Operator on the reduce-side */ keyFields[i] = ExprNodeEvaluatorFactory.get(exprDef.getExprNode()); keyOIs[i] = keyFields[i].initialize(inputOI); currentKeyOIs[i] = ObjectInspectorUtils.getStandardObjectInspector(keyOIs[i], ObjectInspectorCopyOption.WRITABLE); } keyWrapperFactory = new KeyWrapperFactory(keyFields, keyOIs, currentKeyOIs); newKeys = keyWrapperFactory.getKeyWrapper(); }
protected void setupKeysWrapper(ObjectInspector inputOI) throws HiveException { PartitionDef pDef = conf.getStartOfChain().getPartition(); List<PTFExpressionDef> exprs = pDef.getExpressions(); int numExprs = exprs.size(); ExprNodeEvaluator[] keyFields = new ExprNodeEvaluator[numExprs]; ObjectInspector[] keyOIs = new ObjectInspector[numExprs]; ObjectInspector[] currentKeyOIs = new ObjectInspector[numExprs]; for(int i=0; i<numExprs; i++) { PTFExpressionDef exprDef = exprs.get(i); /* * Why cannot we just use the ExprNodeEvaluator on the column? * - because on the reduce-side it is initialized based on the rowOI of the HiveTable * and not the OI of the parent of this Operator on the reduce-side */ keyFields[i] = ExprNodeEvaluatorFactory.get(exprDef.getExprNode()); keyOIs[i] = keyFields[i].initialize(inputOI); currentKeyOIs[i] = ObjectInspectorUtils.getStandardObjectInspector(keyOIs[i], ObjectInspectorCopyOption.WRITABLE); } keyWrapperFactory = new KeyWrapperFactory(keyFields, keyOIs, currentKeyOIs); newKeys = keyWrapperFactory.getKeyWrapper(); }
ExprNodeDesc exprNode = arg.getExprNode(); prunedCols = mergeFieldNodesWithDesc(prunedCols, exprNode); ExprNodeDesc exprNode = col.getExprNode(); prunedCols = mergeFieldNodesWithDesc(prunedCols, exprNode); ExprNodeDesc exprNode = col.getExprNode(); prunedCols = mergeFieldNodesWithDesc(prunedCols, exprNode);
private OrderExpressionDef translate(ShapeDetails inpShape, OrderExpression oExpr) throws SemanticException { OrderExpressionDef oexpDef = new OrderExpressionDef(); oexpDef.setOrder(oExpr.getOrder()); oexpDef.setNullOrder(oExpr.getNullOrder()); try { PTFExpressionDef expDef = buildExpressionDef(inpShape, oExpr.getExpression()); oexpDef.setExpressionTreeString(expDef.getExpressionTreeString()); oexpDef.setExprEvaluator(expDef.getExprEvaluator()); oexpDef.setExprNode(expDef.getExprNode()); oexpDef.setOI(expDef.getOI()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateComparable(oexpDef.getOI(), String.format("Partition Expression %s is not a comparable expression", oExpr.getExpression().toStringTree())); return oexpDef; }
private OrderExpressionDef translate(ShapeDetails inpShape, OrderExpression oExpr) throws SemanticException { OrderExpressionDef oexpDef = new OrderExpressionDef(); oexpDef.setOrder(oExpr.getOrder()); oexpDef.setNullOrder(oExpr.getNullOrder()); try { PTFExpressionDef expDef = buildExpressionDef(inpShape, oExpr.getExpression()); oexpDef.setExpressionTreeString(expDef.getExpressionTreeString()); oexpDef.setExprEvaluator(expDef.getExprEvaluator()); oexpDef.setExprNode(expDef.getExprNode()); oexpDef.setOI(expDef.getOI()); } catch (HiveException he) { throw new SemanticException(he); } PTFTranslator.validateComparable(oexpDef.getOI(), String.format("Partition Expression %s is not a comparable expression", oExpr.getExpression().toStringTree())); return oexpDef; }