org.apache.pig.impl.logicalLayer
Class LONative
java.lang.Object
org.apache.pig.impl.plan.Operator<LOVisitor>
org.apache.pig.impl.logicalLayer.LogicalOperator
org.apache.pig.impl.logicalLayer.RelationalOperator
org.apache.pig.impl.logicalLayer.LONative
- All Implemented Interfaces:
- Serializable, Cloneable, Comparable<Operator>
public class LONative
- extends RelationalOperator
- See Also:
- Serialized Form
Fields inherited from class org.apache.pig.impl.plan.Operator |
mKey |
Methods inherited from class org.apache.pig.impl.logicalLayer.LogicalOperator |
clone, forceSchema, getAlias, getAliasString, getCustomPartitioner, getOperatorKey, getPlan, getRequestedParallelism, getType, isPinnedOption, pinOption, reconcileSchema, regenerateSchema, setAlias, setCanonicalNames, setCustomPartitioner, setParent, setPlan, setRequestedParallelism, setSchema, setSchemaComputed, setType, supportsMultipleOutputs, toString, unsetSchema |
LONative
public LONative(LogicalPlan plan,
OperatorKey k,
String nativeJar,
String[] parameters)
getRelevantInputs
public List<RequiredFields> getRelevantInputs(int output,
int column)
throws FrontendException
- Description copied from class:
RelationalOperator
- Get relevant input columns of a particular output column. The resulting input columns
are necessary components only to the output column. Input columns needed by the entire
RelationalOperator thus indirectly contribute to the output columns are not counted. Those
are required columns.
eg1:
A = load 'a' AS (a0, a1, a2);
B = filter a by a0=='1';
Relevant input columns for B.$1 is A.a1 because A.a1 direct generate B.$1. A.a0 is needed
by the filter operator and it is considered as required fields for the relational operator.
eg2:
A = load 'a' AS (a0, a1);
B = load 'b' AS (b0, b1);
C = join A by a0, B by b0;
Relevant input columns for C.$0 is A.a0. Relevant input columns for C.$1 is A.a1.
eg3:
A = load 'a' AS (a0, a1);
B = load 'b' AS (b0, b1);
C = cogroup A by a0, B by b0;
Relevant input columns for C.$0 is A.a0, B.b0. Relevant input columns for C.$1 is A.*. Relevant input columns for C.$2 is B.*.
eg4:
A = load 'a' AS (a0, a1, a2);
B = foreach A generate a1, a0+a2;
Relevant input columns for B.$0 is A.a1. Relevant input columns for B.$1 is A.a0 and A.a2.
eg5:
A = load 'a' AS (a0, a1, a2);
B = foreach A generate a1, *;
Relevant input columns for B.$0 is A.a1. Relevant input columns for B.$1 is A.a0.
Relevant input columns for B.$2 is A.a1. Relevant input columns for B.$3 is A.a2.
- Specified by:
getRelevantInputs
in class RelationalOperator
- Parameters:
output
- output index. Only LOSplit have output other than 0 currentlycolumn
- output column
- Returns:
- List of relevant input columns. null if Pig cannot determine relevant inputs or any error occurs
- Throws:
FrontendException
getNativeMRJar
public String getNativeMRJar()
getParams
public String[] getParams()
visit
public void visit(LOVisitor v)
throws VisitorException
- Description copied from class:
LogicalOperator
- Visit this node with the provided visitor. This should only be called by
the visitor class itself, never directly.
- Specified by:
visit
in class LogicalOperator
- Parameters:
v
- Visitor to visit with.
- Throws:
VisitorException
- if the visitor has a problem.
name
public String name()
- Specified by:
name
in class Operator<LOVisitor>
supportsMultipleInputs
public boolean supportsMultipleInputs()
- Description copied from class:
Operator
- Indicates whether this operator supports multiple inputs.
- Specified by:
supportsMultipleInputs
in class Operator<LOVisitor>
- Returns:
- true if it does, otherwise false.
getSchema
public Schema getSchema()
throws FrontendException
- Description copied from class:
LogicalOperator
- Get a copy of the schema for the output of this operator.
- Specified by:
getSchema
in class LogicalOperator
- Throws:
FrontendException
Copyright © ${year} The Apache Software Foundation