public class PODemux extends PhysicalOperator
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.
PhysicalOperator.OriginalLocation
alias, illustrator, input, inputAttached, inputs, lineageTracer, mBagFactory, mTupleFactory, outputs, parentPlan, pigLogger, reporter, requestedParallelism, res, RESULT_EMPTY, RESULT_EOP, resultType
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
void |
addPlan(PhysicalPlan inPlan)
Appends the specified plan at the end of the list.
|
Result |
getNextTuple() |
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.
|
addOriginalLocation, addOriginalLocation, attachInput, clone, cloneHelper, clonePlans, copyAliasFrom, detachInput, getAlias, getAliasString, getIllustrator, getInputs, getLogger, getNext, getNextBigDecimal, getNextBigInteger, getNextBoolean, getNextDataBag, getNextDataByteArray, getNextDateTime, getNextDouble, getNextFloat, getNextInteger, getNextLong, getNextMap, getNextString, getOriginalLocations, getParentPlan, getPigLogger, getReporter, getRequestedParallelism, getResultType, isAccumStarted, isAccumulative, isBlocking, isEndOfAllInput, isInputAttached, processInput, reset, setAccumEnd, setAccumStart, setAccumulative, setIllustrator, setInputs, setParentPlan, setPigLogger, setReporter, setRequestedParallelism, setResultType, staticDataCleanup
compareTo, equals, getOperatorKey, getProjectionMap, hashCode, regenerateProjectionMap, rewire, toString, unsetProjectionMap
public PODemux(OperatorKey k)
k
- the operator keypublic PODemux(OperatorKey k, int rp)
k
- the operator keyrp
- the degree of parallelism requestedpublic PODemux(OperatorKey k, List<PhysicalOperator> inp)
k
- the operator keyinp
- the inputs that this operator will read data frompublic PODemux(OperatorKey k, int rp, List<PhysicalOperator> inp)
k
- the operator keyrp
- the degree of parallelism requestedinp
- the inputs that this operator will read data frompublic void visit(PhyPlanVisitor v) throws VisitorException
Operator
visit
in class PhysicalOperator
v
- Visitor to visit with.VisitorException
- if the visitor has a problem.public String name()
name
in class Operator<PhyPlanVisitor>
public boolean supportsMultipleInputs()
Operator
supportsMultipleInputs
in class Operator<PhyPlanVisitor>
public boolean supportsMultipleOutputs()
Operator
supportsMultipleOutputs
in class Operator<PhyPlanVisitor>
public List<PhysicalPlan> getPlans()
public void addPlan(PhysicalPlan inPlan)
inPlan
- plan to be appended to the inner plan listpublic Result getNextTuple() throws ExecException
getNextTuple
in class PhysicalOperator
ExecException
public void setInCombiner(boolean inCombiner)
inCombiner
- true if this operator is in
a combiner; false if this operator is in a reducerpublic boolean isInCombiner()
public Tuple illustratorMarkup(Object in, Object out, int eqClassIndex)
Illustrable
in
- input tupleout
- output tuple before wrapped in ExampleTupleeqClassIndex
- index into equivalence classes in illustratorCopyright © 2007-2017 The Apache Software Foundation