Skip navigation links


    • Constructor Detail

      • REPLACE

        public REPLACE()
    • Method Detail

      • exec

        public String exec(Tuple input)
                    throws IOException
        Method invoked on every tuple during foreach evaluation
        Specified by:
        exec in class EvalFunc<String>
        input - tuple; first column is assumed to have the column to convert
        result, of type T.
      • outputSchema

        public Schema outputSchema(Schema input)
        Description copied from class: EvalFunc
        Report the schema of the output of this UDF. Pig will make use of this in error checking, optimization, and planning. The schema of input data to this UDF is provided.

        The default implementation interprets the OutputSchema annotation, if one is present. Otherwise, it returns null (no known output schema).

        outputSchema in class EvalFunc<String>
        input - Schema of the input
        Schema of the output
      • getArgToFuncMapping

        public List<FuncSpec> getArgToFuncMapping()
                                           throws FrontendException
        Description copied from class: EvalFunc
        Allow a UDF to specify type specific implementations of itself. For example, an implementation of arithmetic sum might have int and float implementations, since integer arithmetic performs much better than floating point arithmetic. Pig's typechecker will call this method and using the returned list plus the schema of the function's input data, decide which implementation of the UDF to use.
        getArgToFuncMapping in class EvalFunc<String>
        A List containing FuncSpec objects representing the EvalFunc class which can handle the inputs corresponding to the schema in the objects. Each FuncSpec should be constructed with a schema that describes the input for that implementation. For example, the sum function above would return two elements in its list:
        1. FuncSpec(this.getClass().getName(), new Schema(new Schema.FieldSchema(null, DataType.DOUBLE)))
        2. FuncSpec(IntSum.getClass().getName(), new Schema(new Schema.FieldSchema(null, DataType.INTEGER)))
        This would indicate that the main implementation is used for doubles, and the special implementation IntSum is used for ints.
      • allowCompileTimeCalculation

        public boolean allowCompileTimeCalculation()
        Description copied from class: EvalFunc
        Whether the UDF should be evaluated at compile time if all inputs are constant. This is applicable for most UDF, however, if a UDF will access hdfs file which is not available at compile time, it has to be false
        allowCompileTimeCalculation in class EvalFunc<String>
        Whether or not compile time calculation is allowed, default to false to ensure legacy UDF will get the right behavior

Copyright © 2007-2017 The Apache Software Foundation