Class AbstractMergeOuterJoinIterator<T1,T2,O>
java.lang.Object
org.apache.flink.runtime.operators.sort.AbstractMergeIterator<T1,T2,O>
org.apache.flink.runtime.operators.sort.AbstractMergeOuterJoinIterator<T1,T2,O>
- All Implemented Interfaces:
JoinTaskIterator<T1,T2, O>
- Direct Known Subclasses:
NonReusingMergeOuterJoinIterator,ReusingMergeOuterJoinIterator
public abstract class AbstractMergeOuterJoinIterator<T1,T2,O>
extends AbstractMergeIterator<T1,T2,O>
An implementation of the
JoinTaskIterator that
realizes the outer join through a sort-merge join strategy.-
Field Summary
Fields inherited from class org.apache.flink.runtime.operators.sort.AbstractMergeIterator
blockHeadCopy, copy1, copy2, iterator1, iterator2, pairComparator, serializer1, serializer2, spillHeadCopy -
Constructor Summary
ConstructorsConstructorDescriptionAbstractMergeOuterJoinIterator(org.apache.flink.api.common.operators.base.OuterJoinOperatorBase.OuterJoinType outerJoinType, org.apache.flink.util.MutableObjectIterator<T1> input1, org.apache.flink.util.MutableObjectIterator<T2> input2, org.apache.flink.api.common.typeutils.TypeSerializer<T1> serializer1, org.apache.flink.api.common.typeutils.TypeComparator<T1> comparator1, org.apache.flink.api.common.typeutils.TypeSerializer<T2> serializer2, org.apache.flink.api.common.typeutils.TypeComparator<T2> comparator2, org.apache.flink.api.common.typeutils.TypePairComparator<T1, T2> pairComparator, MemoryManager memoryManager, IOManager ioManager, int numMemoryPages, AbstractInvokable parentTask) -
Method Summary
Modifier and TypeMethodDescriptionbooleancallWithNextKey(org.apache.flink.api.common.functions.FlatJoinFunction<T1, T2, O> joinFunction, org.apache.flink.util.Collector<O> collector) Calls theJoinFunction#join()method for all two key-value pairs that share the same key and come from different inputs.Methods inherited from class org.apache.flink.runtime.operators.sort.AbstractMergeIterator
abort, close, createCopy, createKeyGroupedIterator, crossMatchingGroup, open
-
Constructor Details
-
AbstractMergeOuterJoinIterator
public AbstractMergeOuterJoinIterator(org.apache.flink.api.common.operators.base.OuterJoinOperatorBase.OuterJoinType outerJoinType, org.apache.flink.util.MutableObjectIterator<T1> input1, org.apache.flink.util.MutableObjectIterator<T2> input2, org.apache.flink.api.common.typeutils.TypeSerializer<T1> serializer1, org.apache.flink.api.common.typeutils.TypeComparator<T1> comparator1, org.apache.flink.api.common.typeutils.TypeSerializer<T2> serializer2, org.apache.flink.api.common.typeutils.TypeComparator<T2> comparator2, org.apache.flink.api.common.typeutils.TypePairComparator<T1, T2> pairComparator, MemoryManager memoryManager, IOManager ioManager, int numMemoryPages, AbstractInvokable parentTask) throws MemoryAllocationException- Throws:
MemoryAllocationException
-
-
Method Details
-
callWithNextKey
public boolean callWithNextKey(org.apache.flink.api.common.functions.FlatJoinFunction<T1, T2, throws ExceptionO> joinFunction, org.apache.flink.util.Collector<O> collector) Calls theJoinFunction#join()method for all two key-value pairs that share the same key and come from different inputs. Furthermore, depending on the outer join type (LEFT, RIGHT, FULL), all key-value pairs where no matching partner from the other input exists are joined with null. The output of thejoin()method is forwarded.- Specified by:
callWithNextKeyin interfaceJoinTaskIterator<T1,T2, O> - Specified by:
callWithNextKeyin classAbstractMergeIterator<T1,T2, O> - Parameters:
joinFunction- The match stub containing the match function which is called with the keys.collector- The collector to pass the match function.- Returns:
- True, if a next key exists, false if no more keys exist.
- Throws:
Exception- Forwards all exceptions from the user code and the I/O system.- See Also:
-