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

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

public class POMergeJoin
extends PhysicalOperator

This operator implements merge join algorithm to do map side joins. Currently, only two-way joins are supported. One input of join is identified as left and other is identified as right. Left input tuples are the input records in map. Right tuples are read from HDFS by opening right stream. This join doesn't support outer join. Data is assumed to be sorted in ascending order. It will fail if data is sorted in descending order.

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
POMergeJoin(OperatorKey k, int rp, List<PhysicalOperator> inp, MultiMap<PhysicalOperator,PhysicalPlan> inpPlans, List<List<Byte>> keyTypes)
           
 
Method Summary
 String getIndexFile()
           
 List<PhysicalPlan> getInnerPlansOf(int index)
           
 Result getNext(Tuple t)
           
 String getSignature()
           
 Tuple illustratorMarkup(Object in, Object out, int eqClassIndex)
          input tuple mark up to be illustrate-able
 String name()
           
 void setIndexFile(String indexFile)
           
 void setRightInputFileName(String rightInputFileName)
           
 void setRightLoaderFuncSpec(FuncSpec rightLoaderFuncSpec)
           
 void setSignature(String signature)
           
 void setupRightPipeline(PhysicalPlan rightPipeline)
           
 boolean supportsMultipleInputs()
          Indicates whether this operator supports multiple inputs.
 boolean supportsMultipleOutputs()
          Indicates whether this operator supports multiple outputs.
 void throwProcessingException(boolean withCauseException, Exception e)
           
 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

POMergeJoin

public POMergeJoin(OperatorKey k,
                   int rp,
                   List<PhysicalOperator> inp,
                   MultiMap<PhysicalOperator,PhysicalPlan> inpPlans,
                   List<List<Byte>> keyTypes)
            throws PlanException
Parameters:
k -
rp -
inp -
inpPlans - there can only be 2 inputs each being a List Ex. join A by ($0,$1), B by ($1,$2);
Throws:
PlanException
Method Detail

getNext

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

throwProcessingException

public void throwProcessingException(boolean withCauseException,
                                     Exception e)
                              throws ExecException
Throws:
ExecException

setupRightPipeline

public void setupRightPipeline(PhysicalPlan rightPipeline)
                        throws FrontendException
Throws:
FrontendException

setRightLoaderFuncSpec

public void setRightLoaderFuncSpec(FuncSpec rightLoaderFuncSpec)

getInnerPlansOf

public List<PhysicalPlan> getInnerPlansOf(int index)

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.

setRightInputFileName

public void setRightInputFileName(String rightInputFileName)
Parameters:
rightInputFileName - the rightInputFileName to set

getSignature

public String getSignature()

setSignature

public void setSignature(String signature)

setIndexFile

public void setIndexFile(String indexFile)

getIndexFile

public String getIndexFile()

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 © ${year} The Apache Software Foundation