org.apache.hadoop.hive.ql.parse.QBParseInfo.getAggregationExprsForClause()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(8.0k)|赞(0)|评价(0)|浏览(127)

本文整理了Java中org.apache.hadoop.hive.ql.parse.QBParseInfo.getAggregationExprsForClause方法的一些代码示例,展示了QBParseInfo.getAggregationExprsForClause的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。QBParseInfo.getAggregationExprsForClause方法的具体详情如下:
包路径:org.apache.hadoop.hive.ql.parse.QBParseInfo
类名称:QBParseInfo
方法名:getAggregationExprsForClause

QBParseInfo.getAggregationExprsForClause介绍

暂无

代码示例

代码示例来源:origin: apache/hive

private void getReduceValuesForReduceSinkNoMapAgg(QBParseInfo parseInfo, String dest,
                         RowResolver reduceSinkInputRowResolver, RowResolver reduceSinkOutputRowResolver,
                         List<String> outputValueColumnNames, ArrayList<ExprNodeDesc> reduceValues,
                         Map<String, ExprNodeDesc> colExprMap) throws SemanticException {
 HashMap<String, ASTNode> aggregationTrees = parseInfo
   .getAggregationExprsForClause(dest);
 // Put parameters to aggregations in reduceValues
 for (Map.Entry<String, ASTNode> entry : aggregationTrees.entrySet()) {
  ASTNode value = entry.getValue();
  // 0 is function name
  for (int i = 1; i < value.getChildCount(); i++) {
   ASTNode parameter = (ASTNode) value.getChild(i);
   if (reduceSinkOutputRowResolver.getExpression(parameter) == null) {
    ExprNodeDesc exprDesc = genExprNodeDesc(parameter, reduceSinkInputRowResolver);
    reduceValues.add(exprDesc);
    outputValueColumnNames
      .add(getColumnInternalName(reduceValues.size() - 1));
    String field = Utilities.ReduceField.VALUE.toString() + "."
      + getColumnInternalName(reduceValues.size() - 1);
    reduceSinkOutputRowResolver.putExpression(parameter, new ColumnInfo(field,
      reduceValues.get(reduceValues.size() - 1).getTypeInfo(), null,
      false));
    colExprMap.put(field, exprDesc);
   }
  }
 }
}

代码示例来源:origin: apache/drill

private void getReduceValuesForReduceSinkNoMapAgg(QBParseInfo parseInfo, String dest,
  RowResolver reduceSinkInputRowResolver, RowResolver reduceSinkOutputRowResolver,
  List<String> outputValueColumnNames, ArrayList<ExprNodeDesc> reduceValues,
  Map<String, ExprNodeDesc> colExprMap) throws SemanticException {
 HashMap<String, ASTNode> aggregationTrees = parseInfo
   .getAggregationExprsForClause(dest);
 // Put parameters to aggregations in reduceValues
 for (Map.Entry<String, ASTNode> entry : aggregationTrees.entrySet()) {
  ASTNode value = entry.getValue();
  // 0 is function name
  for (int i = 1; i < value.getChildCount(); i++) {
   ASTNode parameter = (ASTNode) value.getChild(i);
   if (reduceSinkOutputRowResolver.getExpression(parameter) == null) {
    ExprNodeDesc exprDesc = genExprNodeDesc(parameter, reduceSinkInputRowResolver);
    reduceValues.add(exprDesc);
    outputValueColumnNames
      .add(getColumnInternalName(reduceValues.size() - 1));
    String field = Utilities.ReduceField.VALUE.toString() + "."
      + getColumnInternalName(reduceValues.size() - 1);
    reduceSinkOutputRowResolver.putExpression(parameter, new ColumnInfo(field,
      reduceValues.get(reduceValues.size() - 1).getTypeInfo(), null,
      false));
    colExprMap.put(field, exprDesc);
   }
  }
 }
}

代码示例来源:origin: apache/hive

.getAggregationExprsForClause(dest);

代码示例来源:origin: apache/hive

int inputField = reduceKeys.size();
HashMap<String, ASTNode> aggregationTrees = parseInfo
  .getAggregationExprsForClause(dest);
for (Map.Entry<String, ASTNode> entry : aggregationTrees.entrySet()) {
 String field = getColumnInternalName(inputField);

代码示例来源:origin: apache/drill

.getAggregationExprsForClause(dest);

代码示例来源:origin: apache/drill

int inputField = reduceKeys.size();
HashMap<String, ASTNode> aggregationTrees = parseInfo
  .getAggregationExprsForClause(dest);
for (Map.Entry<String, ASTNode> entry : aggregationTrees.entrySet()) {
 String field = getColumnInternalName(inputField);

代码示例来源:origin: apache/hive

.getAggregationExprsForClause(dest);
assert (aggregationTrees != null);

代码示例来源:origin: apache/hive

checkExpressionsForGroupingSet(grpByExprs,
  parseInfo.getDistinctFuncExprsForClause(dest),
  parseInfo.getAggregationExprsForClause(dest),
  opParseCtx.get(inputOperatorInfo).getRowResolver());

代码示例来源:origin: apache/hive

checkExpressionsForGroupingSet(grpByExprs,
  parseInfo.getDistinctFuncExprsForClause(dest),
  parseInfo.getAggregationExprsForClause(dest),
  opParseCtx.get(inputOperatorInfo).getRowResolver());

代码示例来源:origin: apache/hive

.getAggregationExprsForClause(dest);
boolean containsDistinctAggr = false;
for (Map.Entry<String, ASTNode> entry : aggregationTrees.entrySet()) {

代码示例来源:origin: apache/hive

(qbp.getAggregationExprsForClause(firstDest).size() == 0 &&
  getGroupByForClause(qbp, firstDest).size() == 0) ||
conf.getBoolVar(HiveConf.ConfVars.HIVEGROUPBYSKEW) ||
if ((qbp.getAggregationExprsForClause(dest).size() != 0
  || getGroupByForClause(qbp, dest).size() > 0)
  && (qbp.getSelForClause(dest).getToken().getType() != HiveParser.TOK_SELECTDI

代码示例来源:origin: apache/hive

.getAggregationExprsForClause(dest);
assert (aggregationTrees != null);

代码示例来源:origin: apache/drill

(qbp.getAggregationExprsForClause(firstDest).size() == 0 &&
getGroupByForClause(qbp, firstDest).size() == 0) ||
conf.getBoolVar(HiveConf.ConfVars.HIVEGROUPBYSKEW) ||
if ((qbp.getAggregationExprsForClause(dest).size() != 0
  || getGroupByForClause(qbp, dest).size() > 0)
    && (qbp.getSelForClause(dest).getToken().getType() != HiveParser.TOK_SELECTDI

代码示例来源:origin: apache/drill

.getAggregationExprsForClause(dest);
assert (aggregationTrees != null);

代码示例来源:origin: apache/hive

HashMap<String, ASTNode> aggregationTrees = qbp.getAggregationExprsForClause(detsClauseName);
boolean hasGrpByAstExprs = (grpByAstExprs != null && !grpByAstExprs.isEmpty()) ? true : false;
boolean hasAggregationTrees = (aggregationTrees != null && !aggregationTrees.isEmpty()) ? true

代码示例来源:origin: apache/hive

.getAggregationExprsForClause(dest);

代码示例来源:origin: apache/hive

curr = genWindowingPlan(qb, qb.getWindowingSpec(dest), curr);
if ((qbp.getAggregationExprsForClause(dest).size() != 0
  || getGroupByForClause(qbp, dest).size() > 0)
  && qbp.getSelForClause(dest).getToken().getType() == HiveParser.TOK_SELECTDI

代码示例来源:origin: apache/drill

curr = genWindowingPlan(qb, qb.getWindowingSpec(dest), curr);
if ((qbp.getAggregationExprsForClause(dest).size() != 0
    || getGroupByForClause(qbp, dest).size() > 0)
      && qbp.getSelForClause(dest).getToken().getType() == HiveParser.TOK_SELECTDI

代码示例来源:origin: apache/hive

private boolean isValidGroupBySelectList(QB currQB, String clause){
 ConstantExprCheck constantExprCheck = new ConstantExprCheck();
 AggregationExprCheck aggrExprCheck = new AggregationExprCheck(
   currQB.getParseInfo().getAggregationExprsForClause(clause));
 TreeWizard tw = new TreeWizard(ParseDriver.adaptor, HiveParser.tokenNames);
 ASTNode selectNode = currQB.getParseInfo().getSelForClause(clause);
 /*
  * for Select Distinct Queries we don't move any aggregations.
  */
 if ( selectNode != null && selectNode.getType() == HiveParser.TOK_SELECTDI ) {
  return true;
 }
 for (int i = 0; selectNode != null && i < selectNode.getChildCount(); i++) {
  ASTNode selectExpr = (ASTNode) selectNode.getChild(i);
  //check for QUERY_HINT expressions on ast
  if(selectExpr.getType() != HiveParser.TOK_SELEXPR){
   continue;
  }
  constantExprCheck.reset();
  PTFTranslator.visit(selectExpr.getChild(0), constantExprCheck);
  if ( !constantExprCheck.isConstant() ) {
   aggrExprCheck.reset();
   PTFTranslator.visit(selectExpr.getChild(0), aggrExprCheck);
   if (!aggrExprCheck.isAggr() ) {
    return false;
   }
  }
 }
 return true;
}

代码示例来源:origin: apache/drill

private boolean isValidGroupBySelectList(QB currQB, String clause){
 ConstantExprCheck constantExprCheck = new ConstantExprCheck();
 AggregationExprCheck aggrExprCheck = new AggregationExprCheck(
   currQB.getParseInfo().getAggregationExprsForClause(clause));
 TreeWizard tw = new TreeWizard(ParseDriver.adaptor, HiveParser.tokenNames);
 ASTNode selectNode = currQB.getParseInfo().getSelForClause(clause);
 /*
  * for Select Distinct Queries we don't move any aggregations.
  */
 if ( selectNode != null && selectNode.getType() == HiveParser.TOK_SELECTDI ) {
  return true;
 }
 for (int i = 0; selectNode != null && i < selectNode.getChildCount(); i++) {
  ASTNode selectExpr = (ASTNode) selectNode.getChild(i);
  //check for QUERY_HINT expressions on ast
  if(selectExpr.getType() != HiveParser.TOK_SELEXPR){
   continue;
  }
  constantExprCheck.reset();
  PTFTranslator.visit(selectExpr.getChild(0), constantExprCheck);
  if ( !constantExprCheck.isConstant() ) {
   aggrExprCheck.reset();
   PTFTranslator.visit(selectExpr.getChild(0), aggrExprCheck);
   if (!aggrExprCheck.isAggr() ) {
    return false;
   }
  }
 }
 return true;
}

相关文章

微信公众号

最新文章

更多

QBParseInfo类方法