Class AbstractOuterJoinDriver<IT1,IT2,OT>
java.lang.Object
org.apache.flink.runtime.operators.AbstractOuterJoinDriver<IT1,IT2,OT>
- All Implemented Interfaces:
Driver<org.apache.flink.api.common.functions.FlatJoinFunction<IT1,IT2, OT>, OT>
- Direct Known Subclasses:
FullOuterJoinDriver,LeftOuterJoinDriver,RightOuterJoinDriver
public abstract class AbstractOuterJoinDriver<IT1,IT2,OT>
extends Object
implements Driver<org.apache.flink.api.common.functions.FlatJoinFunction<IT1,IT2,OT>,OT>
The abstract outer join driver implements the logic of an outer join operator at runtime. It
instantiates a sort-merge based strategy to find joining pairs of records or joining records with
null depending on the outer join type.
- See Also:
-
FlatJoinFunction
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final org.slf4j.Loggerprotected JoinTaskIterator<IT1,IT2, OT> protected booleanprotected TaskContext<org.apache.flink.api.common.functions.FlatJoinFunction<IT1,IT2, OT>, OT> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcancel()This method is invoked when the driver must aborted in mid processing.voidcleanup()This method is invoked in any case (clean termination and exception) at the end of the tasks operation.protected abstract JoinTaskIterator<IT1,IT2, OT> getNonReusingOuterJoinIterator(DriverStrategy driverStrategy, org.apache.flink.util.MutableObjectIterator<IT1> in1, org.apache.flink.util.MutableObjectIterator<IT2> in2, org.apache.flink.api.common.typeutils.TypeSerializer<IT1> serializer1, org.apache.flink.api.common.typeutils.TypeComparator<IT1> comparator1, org.apache.flink.api.common.typeutils.TypeSerializer<IT2> serializer2, org.apache.flink.api.common.typeutils.TypeComparator<IT2> comparator2, org.apache.flink.api.common.typeutils.TypePairComparatorFactory<IT1, IT2> pairComparatorFactory, MemoryManager memoryManager, IOManager ioManager, double driverMemFraction) intGets the number of comparators required for this driver.intGets the number of inputs that the task has.protected abstract JoinTaskIterator<IT1,IT2, OT> getReusingOuterJoinIterator(DriverStrategy driverStrategy, org.apache.flink.util.MutableObjectIterator<IT1> in1, org.apache.flink.util.MutableObjectIterator<IT2> in2, org.apache.flink.api.common.typeutils.TypeSerializer<IT1> serializer1, org.apache.flink.api.common.typeutils.TypeComparator<IT1> comparator1, org.apache.flink.api.common.typeutils.TypeSerializer<IT2> serializer2, org.apache.flink.api.common.typeutils.TypeComparator<IT2> comparator2, org.apache.flink.api.common.typeutils.TypePairComparatorFactory<IT1, IT2> pairComparatorFactory, MemoryManager memoryManager, IOManager ioManager, double driverMemFraction) Gets the class of the stub type that is run by this task.voidprepare()This method is called before the user code is opened.voidrun()The main operation method of the task.void
-
Field Details
-
LOG
protected static final org.slf4j.Logger LOG -
taskContext
protected TaskContext<org.apache.flink.api.common.functions.FlatJoinFunction<IT1,IT2, taskContextOT>, OT> -
outerJoinIterator
-
running
protected volatile boolean running
-
-
Constructor Details
-
AbstractOuterJoinDriver
public AbstractOuterJoinDriver()
-
-
Method Details
-
setup
public void setup(TaskContext<org.apache.flink.api.common.functions.FlatJoinFunction<IT1, IT2, OT>, OT> context) -
getNumberOfInputs
public int getNumberOfInputs()Description copied from interface:DriverGets the number of inputs that the task has.- Specified by:
getNumberOfInputsin interfaceDriver<IT1,IT2> - Returns:
- The number of inputs.
-
getStubType
Description copied from interface:DriverGets the class of the stub type that is run by this task. For example, a MapTask should returnMapFunction.class.- Specified by:
getStubTypein interfaceDriver<IT1,IT2> - Returns:
- The class of the stub type run by the task.
-
getNumberOfDriverComparators
public int getNumberOfDriverComparators()Description copied from interface:DriverGets the number of comparators required for this driver.- Specified by:
getNumberOfDriverComparatorsin interfaceDriver<IT1,IT2> - Returns:
- The number of comparators required for this driver.
-
prepare
Description copied from interface:DriverThis method is called before the user code is opened. An exception thrown by this method signals failure of the task. -
run
Description copied from interface:DriverThe main operation method of the task. It should call the user code with the data subsets until the input is depleted. -
cleanup
Description copied from interface:DriverThis method is invoked in any case (clean termination and exception) at the end of the tasks operation. -
cancel
public void cancel()Description copied from interface:DriverThis method is invoked when the driver must aborted in mid processing. It is invoked asynchronously by a different thread. -
getReusingOuterJoinIterator
protected abstract JoinTaskIterator<IT1,IT2, getReusingOuterJoinIteratorOT> (DriverStrategy driverStrategy, org.apache.flink.util.MutableObjectIterator<IT1> in1, org.apache.flink.util.MutableObjectIterator<IT2> in2, org.apache.flink.api.common.typeutils.TypeSerializer<IT1> serializer1, org.apache.flink.api.common.typeutils.TypeComparator<IT1> comparator1, org.apache.flink.api.common.typeutils.TypeSerializer<IT2> serializer2, org.apache.flink.api.common.typeutils.TypeComparator<IT2> comparator2, org.apache.flink.api.common.typeutils.TypePairComparatorFactory<IT1, IT2> pairComparatorFactory, MemoryManager memoryManager, IOManager ioManager, double driverMemFraction) throws Exception- Throws:
Exception
-
getNonReusingOuterJoinIterator
protected abstract JoinTaskIterator<IT1,IT2, getNonReusingOuterJoinIteratorOT> (DriverStrategy driverStrategy, org.apache.flink.util.MutableObjectIterator<IT1> in1, org.apache.flink.util.MutableObjectIterator<IT2> in2, org.apache.flink.api.common.typeutils.TypeSerializer<IT1> serializer1, org.apache.flink.api.common.typeutils.TypeComparator<IT1> comparator1, org.apache.flink.api.common.typeutils.TypeSerializer<IT2> serializer2, org.apache.flink.api.common.typeutils.TypeComparator<IT2> comparator2, org.apache.flink.api.common.typeutils.TypePairComparatorFactory<IT1, IT2> pairComparatorFactory, MemoryManager memoryManager, IOManager ioManager, double driverMemFraction) throws Exception- Throws:
Exception
-