org.apache.pig.piggybank.evaluation.math
Class SCALB
java.lang.Object
org.apache.pig.EvalFunc<Double>
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)
,
Constructor Summary |
SCALB()
|
Methods inherited from class org.apache.pig.EvalFunc |
finish, getCacheFiles, getLogger, getPigLogger, getReporter, getReturnType, getSchemaName, isAsynchronous, progress, setPigLogger, setReporter, warn |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
SCALB
public SCALB()
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 valueoutput
- 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.
- 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:
- FuncSpec(this.getClass().getName(), new Schema(new Schema.FieldSchema(null, DataType.DOUBLE)))
- 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 © 2012 The Apache Software Foundation