org.apache.pig.piggybank.evaluation.math
Class SCALB

java.lang.Object
  extended by org.apache.pig.EvalFunc<Double>
      extended by org.apache.pig.piggybank.evaluation.math.SCALB

public class SCALB
extends EvalFunc<Double>

math.SCALB implements a binding to the Java function Math.scalb(double,int). Given a tuple with two data atom x and y ,it Return x pow(2,y) rounded as if performed by a single correctly rounded floating-point multiply to a member of the double value set.

Parameters:
value - Tuple containing two numeric values [Double, Integer].
Return Value:
Double
Return Schema:
SCALB_inputSchema
Example:
register math.jar;
A = load 'mydata' using PigStorage() as ( float1 );
B = foreach A generate float1, math.SCALB(float1);

Author:
ajay garg
See Also:
Math.scalb(double,int),

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.pig.EvalFunc
EvalFunc.SchemaType
 
Field Summary
 
Fields inherited from class org.apache.pig.EvalFunc
log, pigLogger, reporter, returnType
 
Constructor Summary
SCALB()
           
 
Method Summary
 Double exec(Tuple input)
          java level API
 List<FuncSpec> getArgToFuncMapping()
          Allow a UDF to specify type specific implementations of itself.
 Schema outputSchema(Schema input)
          Report the schema of the output of this UDF.
 
Methods inherited from class org.apache.pig.EvalFunc
finish, getCacheFiles, getInputSchema, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, getSchemaType, isAsynchronous, progress, setInputSchema, setPigLogger, setReporter, setUDFContextSignature, warn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SCALB

public SCALB()
Method Detail

exec

public Double exec(Tuple input)
            throws IOException
java level API

Specified by:
exec in class EvalFunc<Double>
Parameters:
input - expects a tuple containing two numeric DataAtom value
output - returns a single numeric DataAtom value, which is fistArgument pow(2,secondArgument) rounded as if performed by a single correctly rounded floating-point multiply to a member of the double value set.
Returns:
result, of type T.
Throws:
IOException

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).

Overrides:
outputSchema in class EvalFunc<Double>
Parameters:
input - Schema of the input
Returns:
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.

Overrides:
getArgToFuncMapping in class EvalFunc<Double>
Returns:
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.
Throws:
FrontendException


Copyright © 2007-2012 The Apache Software Foundation