本文整理了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
暂无
代码示例来源: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;
}
内容来源于网络,如有侵权,请联系作者删除!