Search in sources :

Example 1 with MapredContext

use of org.apache.hadoop.hive.ql.exec.MapredContext in project hive by apache.

the class VectorUDFAdaptor method init.

// Initialize transient fields. To be called after deserialization of other fields.
public void init() throws HiveException, UDFArgumentException {
    genericUDF = expr.getGenericUDF();
    deferredChildren = new GenericUDF.DeferredObject[expr.getChildren().size()];
    childrenOIs = new ObjectInspector[expr.getChildren().size()];
    writers = VectorExpressionWriterFactory.getExpressionWriters(expr.getChildren());
    for (int i = 0; i < childrenOIs.length; i++) {
        childrenOIs[i] = writers[i].getObjectInspector();
    }
    MapredContext context = MapredContext.get();
    if (context != null) {
        context.setup(genericUDF);
    }
    outputOI = VectorExpressionWriterFactory.genVectorExpressionWritable(expr).getObjectInspector();
    genericUDF.initialize(childrenOIs);
    // Initialize constant arguments
    for (int i = 0; i < argDescs.length; i++) {
        if (argDescs[i].isConstant()) {
            argDescs[i].prepareConstant();
        }
    }
}
Also used : GenericUDF(org.apache.hadoop.hive.ql.udf.generic.GenericUDF) MapredContext(org.apache.hadoop.hive.ql.exec.MapredContext)

Aggregations

MapredContext (org.apache.hadoop.hive.ql.exec.MapredContext)1 GenericUDF (org.apache.hadoop.hive.ql.udf.generic.GenericUDF)1