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

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

public class POFRJoin
extends PhysicalOperator

The operator models the join keys using the Local Rearrange operators which are configured with the plan specified by the user. It also sets up one Hashtable per replicated input which maps the Key(k) stored as a Tuple to a DataBag which holds all the values in the input having the same key(k) The getNext() reads an input from its predecessor and separates them into key & value. It configures a foreach operator with the databags obtained from each Hashtable for the key and also with the value for the fragment input. It then returns tuples returned by this foreach operator.

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
 
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
POFRJoin(OperatorKey k, int rp, List<PhysicalOperator> inp, List<List<PhysicalPlan>> ppLists, List<List<Byte>> keyTypes, FileSpec[] replFiles, int fragment, boolean isLeftOuter, Tuple nullTuple)
           
POFRJoin(OperatorKey k, int rp, List<PhysicalOperator> inp, List<List<PhysicalPlan>> ppLists, List<List<Byte>> keyTypes, FileSpec[] replFiles, int fragment, boolean isLeftOuter, Tuple nullTuple, Schema[] inputSchemas, Schema[] keySchemas)
           
 
Method Summary
 int getFragment()
           
 List<List<PhysicalPlan>> getJoinPlans()
           
 Result getNextTuple()
           
 FileSpec[] getReplFiles()
           
 Tuple illustratorMarkup(Object in, Object out, int eqClassIndex)
          input tuple mark up to be illustrate-able
 String name()
           
 void setFragment(int fragment)
           
 void setReplFiles(FileSpec[] replFiles)
           
 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, attachInput, 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
 

Constructor Detail

POFRJoin

public POFRJoin(OperatorKey k,
                int rp,
                List<PhysicalOperator> inp,
                List<List<PhysicalPlan>> ppLists,
                List<List<Byte>> keyTypes,
                FileSpec[] replFiles,
                int fragment,
                boolean isLeftOuter,
                Tuple nullTuple)
         throws ExecException
Throws:
ExecException

POFRJoin

public POFRJoin(OperatorKey k,
                int rp,
                List<PhysicalOperator> inp,
                List<List<PhysicalPlan>> ppLists,
                List<List<Byte>> keyTypes,
                FileSpec[] replFiles,
                int fragment,
                boolean isLeftOuter,
                Tuple nullTuple,
                Schema[] inputSchemas,
                Schema[] keySchemas)
         throws ExecException
Throws:
ExecException
Method Detail

getJoinPlans

public List<List<PhysicalPlan>> getJoinPlans()

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.

getNextTuple

public Result getNextTuple()
                    throws ExecException
Overrides:
getNextTuple in class PhysicalOperator
Throws:
ExecException

getFragment

public int getFragment()

setFragment

public void setFragment(int fragment)

getReplFiles

public FileSpec[] getReplFiles()

setReplFiles

public void setReplFiles(FileSpec[] replFiles)

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