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

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.PODemux
All Implemented Interfaces:
Serializable, Cloneable, Comparable<Operator>, Illustrable

public class PODemux
extends PhysicalOperator

The MapReduce Demultiplexer operator.

This operator is used when merging multiple Map-Reduce splittees into a Map-only splitter during multi-query optimization. The reduce physical plans of the splittees become the inner plans of this operator.

Due to the recursive nature of multi-query optimization, this operator may be contained in another demux operator.

The predecessor of this operator must be a POMultiQueryPackage operator which passes the index (indicating which inner reduce plan to run) along with other data to this operator.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class org.apache.pig.backend.hadoop.executionengine.physicalLayer.PhysicalOperator
alias, dummyBag, dummyBool, dummyDBA, dummyDouble, dummyFloat, dummyInt, dummyLong, dummyMap, dummyString, dummyTuple, illustrator, input, inputAttached, inputs, lineageTracer, outputs, parentPlan, pigLogger, reporter, requestedParallelism, res, resultType
 
Fields inherited from class org.apache.pig.impl.plan.Operator
mKey
 
Constructor Summary
PODemux(OperatorKey k)
          Constructs an operator with the specified key.
PODemux(OperatorKey k, int rp)
          Constructs an operator with the specified key and degree of parallelism.
PODemux(OperatorKey k, int rp, List<PhysicalOperator> inp)
          Constructs an operator with the specified key, degree of parallelism and inputs.
PODemux(OperatorKey k, List<PhysicalOperator> inp)
          Constructs an operator with the specified key and inputs.
 
Method Summary
 void addPlan(PhysicalPlan inPlan)
          Appends the specified plan at the end of the list.
 Result getNext(Tuple t)
           
 List<PhysicalPlan> getPlans()
          Returns the list of inner plans.
 Tuple illustratorMarkup(Object in, Object out, int eqClassIndex)
          input tuple mark up to be illustrate-able
 boolean isInCombiner()
          Returns a flag indicating if this operator is in a combiner.
 String name()
           
 void setInCombiner(boolean inCombiner)
          Sets a flag indicating if this operator is in a combiner.
 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
attachInput, clone, cloneHelper, detachInput, getAlias, getAliasString, getDummy, getIllustrator, getInputs, getLogger, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getNext, getPigLogger, getRequestedParallelism, getResultType, isAccumStarted, isAccumulative, isBlocking, isInputAttached, processInput, reset, setAccumEnd, setAccumStart, setAccumulative, setAlias, 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
 

Constructor Detail

PODemux

public PODemux(OperatorKey k)
Constructs an operator with the specified key.

Parameters:
k - the operator key

PODemux

public PODemux(OperatorKey k,
               int rp)
Constructs an operator with the specified key and degree of parallelism.

Parameters:
k - the operator key
rp - the degree of parallelism requested

PODemux

public PODemux(OperatorKey k,
               List<PhysicalOperator> inp)
Constructs an operator with the specified key and inputs.

Parameters:
k - the operator key
inp - the inputs that this operator will read data from

PODemux

public PODemux(OperatorKey k,
               int rp,
               List<PhysicalOperator> inp)
Constructs an operator with the specified key, degree of parallelism and inputs.

Parameters:
k - the operator key
rp - the degree of parallelism requested
inp - the inputs that this operator will read data from
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.

getPlans

public List<PhysicalPlan> getPlans()
Returns the list of inner plans.

Returns:
the list of the nested plans

addPlan

public void addPlan(PhysicalPlan inPlan)
Appends the specified plan at the end of the list.

Parameters:
inPlan - plan to be appended to the inner plan list

getNext

public Result getNext(Tuple t)
               throws ExecException
Overrides:
getNext in class PhysicalOperator
Throws:
ExecException

setInCombiner

public void setInCombiner(boolean inCombiner)
Sets a flag indicating if this operator is in a combiner.

Parameters:
inCombiner - true if this operator is in a combiner; false if this operator is in a reducer

isInCombiner

public boolean isInCombiner()
Returns a flag indicating if this operator is in a combiner.

Returns:
true if this operator is in a combiner; otherwise this operator is in a reducer

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