use of com.sap.hadoop.windowing.functions2.GenericUDFLeadLag in project SQLWindowing by hbutani.
the class RuntimeUtils method connectLeadLagFunctionsToPartition.
public static void connectLeadLagFunctionsToPartition(QueryDef qDef, PartitionIterator<Object> pItr) throws WindowingException {
QueryTranslationInfo tInfo = qDef.getTranslationInfo();
List<ExprNodeGenericFuncDesc> llFnDescs = tInfo.getLLInfo().getLeadLagExprs();
if (llFnDescs == null)
return;
for (ExprNodeGenericFuncDesc llFnDesc : llFnDescs) {
GenericUDFLeadLag llFn = (GenericUDFLeadLag) llFnDesc.getGenericUDF();
llFn.setpItr(pItr);
}
}
use of com.sap.hadoop.windowing.functions2.GenericUDFLeadLag in project SQLWindowing by hbutani.
the class TranslateUtils method initExprNodeEvaluator.
public static ObjectInspector initExprNodeEvaluator(QueryDef qDef, ExprNodeDesc exprNode, ExprNodeEvaluator exprEval, InputInfo iInfo) throws WindowingException {
ObjectInspector OI;
try {
OI = exprEval.initialize(iInfo.getOI());
} catch (HiveException he) {
throw new WindowingException(he);
}
/*
* if there are any LeadLag functions in this Expression Tree: - setup a
* duplicate Evaluator for the 1st arg of the LLFuncDesc - initialize it
* using the InputInfo provided for this Expr tree - set the duplicate
* evaluator on the LLUDF instance.
*/
LeadLagInfo llInfo = qDef.getTranslationInfo().getLLInfo();
List<ExprNodeGenericFuncDesc> llFuncExprs = llInfo.getLLFuncExprsInTopExpr(exprNode);
if (llFuncExprs != null) {
for (ExprNodeGenericFuncDesc llFuncExpr : llFuncExprs) {
ExprNodeDesc firstArg = llFuncExpr.getChildren().get(0);
ExprNodeEvaluator dupExprEval = WindowingExprNodeEvaluatorFactory.get(qDef.getTranslationInfo(), firstArg);
try {
dupExprEval.initialize(iInfo.getOI());
} catch (HiveException he) {
throw new WindowingException(he);
}
GenericUDFLeadLag llFn = (GenericUDFLeadLag) llFuncExpr.getGenericUDF();
llFn.setExprEvaluator(dupExprEval);
}
}
return OI;
}
Aggregations