org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators
Class POPreCombinerLocalRearrange

java.lang.Object
  extended by org.apache.pig.impl.plan.Operator<PhyPlanVisitor>
      extended by org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
          extended by org.apache.pig.backend.hadoop.executionengine.physicalLayer.relationalOperators.POPreCombinerLocalRearrange
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Operator>, Illustrable

public class POPreCombinerLocalRearrange
extends PhysicalOperator

A specialized local rearrange operator which behaves like the regular local rearrange in the getNext() as far as getting its input and constructing the "key" out of the input. It then returns a tuple with two fields - the key in the first position and the "value" inside a bag in the second position. This output format resembles the format out of a Package. This output will feed to a foreach which expects this format.

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
PhysicalOperator.OriginalLocation
 
Field Summary
protected  byte keyType
           
protected  List<ExpressionOperator> leafOps
           
protected static BagFactory mBagFactory
           
protected static TupleFactory mTupleFactory
           
protected  List<PhysicalPlan> plans
           
protected static long serialVersionUID
           
 
Fields inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
alias, illustrator, input, inputAttached, inputs, lineageTracer, outputs, parentPlan, pigLogger, requestedParallelism, res, resultType
 
Fields inherited from class org.apache.pig.impl.plan.Operator
mKey
 
Constructor Summary
POPreCombinerLocalRearrange(OperatorKey k)
           
POPreCombinerLocalRearrange(OperatorKey k, int rp)
           
POPreCombinerLocalRearrange(OperatorKey k, int rp, List<PhysicalOperator> inp)
           
POPreCombinerLocalRearrange(OperatorKey k, List<PhysicalOperator> inp)
           
 
Method Summary
 void attachInput(Tuple t)
          Overridden since the attachment of the new input should cause the old processing to end.
protected  Tuple constructLROutput(List<Result> resLst, Tuple value)
           
 byte getKeyType()
           
 Result getNextTuple()
          Calls getNext on the generate operator inside the nested physical plan.
 List<PhysicalPlan> getPlans()
           
 Tuple illustratorMarkup(Object in, Object out, int eqClassIndex)
          input tuple mark up to be illustrate-able
 String name()
           
 void setKeyType(byte keyType)
           
 void setPlans(List<PhysicalPlan> plans)
           
 boolean supportsMultipleInputs()
          Indicates whether this operator supports multiple inputs.
 boolean supportsMultipleOutputs()
          Indicates whether this operator supports multiple outputs.
 void visit(PhyPlanVisitor v)
          Visit this node with the provided visitor.
 
Methods inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
addOriginalLocation, addOriginalLocation, clone, cloneHelper, detachInput, getAlias, getAliasString, getIllustrator, getInputs, getLogger, getNext, getNextBigDecimal, getNextBigInteger, getNextBoolean, getNextDataBag, getNextDataByteArray, getNextDateTime, getNextDouble, getNextFloat, getNextInteger, getNextLong, getNextMap, getNextString, getOriginalLocations, getPigLogger, getReporter, getRequestedParallelism, getResultType, isAccumStarted, isAccumulative, isBlocking, isInputAttached, processInput, reset, setAccumEnd, setAccumStart, setAccumulative, setIllustrator, setInputs, setParentPlan, setPigLogger, setReporter, setRequestedParallelism, setResultType
 
Methods inherited from class org.apache.pig.impl.plan.Operator
compareTo, equals, getOperatorKey, getProjectionMap, hashCode, regenerateProjectionMap, rewire, toString, unsetProjectionMap
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

protected static final long serialVersionUID
See Also:
Constant Field Values

mTupleFactory

protected static final TupleFactory mTupleFactory

mBagFactory

protected static BagFactory mBagFactory

plans

protected List<PhysicalPlan> plans

leafOps

protected List<ExpressionOperator> leafOps

keyType

protected byte keyType
Constructor Detail

POPreCombinerLocalRearrange

public POPreCombinerLocalRearrange(OperatorKey k)

POPreCombinerLocalRearrange

public POPreCombinerLocalRearrange(OperatorKey k,
                                   int rp)

POPreCombinerLocalRearrange

public POPreCombinerLocalRearrange(OperatorKey k,
                                   List<PhysicalOperator> inp)

POPreCombinerLocalRearrange

public POPreCombinerLocalRearrange(OperatorKey k,
                                   int rp,
                                   List<PhysicalOperator> inp)
Method Detail

visit

public void visit(PhyPlanVisitor v)
           throws VisitorException
Description copied from class: Operator
Visit this node with the provided visitor. This should only be called by the visitor class itself, never directly.

Specified by:
visit in class PhysicalOperator
Parameters:
v - Visitor to visit with.
Throws:
VisitorException - if the visitor has a problem.

name

public String name()
Specified by:
name in class Operator<PhyPlanVisitor>

supportsMultipleInputs

public boolean supportsMultipleInputs()
Description copied from class: Operator
Indicates whether this operator supports multiple inputs.

Specified by:
supportsMultipleInputs in class Operator<PhyPlanVisitor>
Returns:
true if it does, otherwise false.

supportsMultipleOutputs

public boolean supportsMultipleOutputs()
Description copied from class: Operator
Indicates whether this operator supports multiple outputs.

Specified by:
supportsMultipleOutputs in class Operator<PhyPlanVisitor>
Returns:
true if it does, otherwise false.

attachInput

public void attachInput(Tuple t)
Overridden since the attachment of the new input should cause the old processing to end.

Overrides:
attachInput in class PhysicalOperator
Parameters:
t - - The tuple that should be used as input

getNextTuple

public Result getNextTuple()
                    throws ExecException
Calls getNext on the generate operator inside the nested physical plan. Converts the generated tuple into the proper format, i.e, (key,indexedTuple(value))

Overrides:
getNextTuple in class PhysicalOperator
Throws:
ExecException

constructLROutput

protected Tuple constructLROutput(List<Result> resLst,
                                  Tuple value)
                           throws ExecException
Throws:
ExecException

getKeyType

public byte getKeyType()

setKeyType

public void setKeyType(byte keyType)

getPlans

public List<PhysicalPlan> getPlans()

setPlans

public void setPlans(List<PhysicalPlan> plans)

illustratorMarkup

public Tuple illustratorMarkup(Object in,
                               Object out,
                               int eqClassIndex)
Description copied from interface: Illustrable
input tuple mark up to be illustrate-able

Parameters:
in - input tuple
out - output tuple before wrapped in ExampleTuple
eqClassIndex - index into equivalence classes in illustrator
Returns:
tuple


Copyright © 2007-2012 The Apache Software Foundation