Class JoinOperator.DefaultJoin<I1,​I2>

  • Type Parameters:
    I1 - The type of the first input DataSet of the Join transformation.
    I2 - The type of the second input DataSet of the Join transformation.
    All Implemented Interfaces:
    JoinFunctionAssigner<I1,​I2>, UdfOperator<JoinOperator<I1,​I2,​org.apache.flink.api.java.tuple.Tuple2<I1,​I2>>>
    Enclosing class:
    JoinOperator<I1,​I2,​OUT>

    @Public
    public static final class JoinOperator.DefaultJoin<I1,​I2>
    extends JoinOperator.EquiJoin<I1,​I2,​org.apache.flink.api.java.tuple.Tuple2<I1,​I2>>
    implements JoinFunctionAssigner<I1,​I2>
    A Join transformation that wraps pairs of joining elements into Tuple2.

    It also represents the DataSet that is the result of a Join transformation.

    See Also:
    Tuple2, DataSet
    • Constructor Detail

      • DefaultJoin

        public DefaultJoin​(DataSet<I1> input1,
                           DataSet<I2> input2,
                           org.apache.flink.api.common.operators.Keys<I1> keys1,
                           org.apache.flink.api.common.operators.Keys<I2> keys2,
                           org.apache.flink.api.common.operators.base.JoinOperatorBase.JoinHint hint,
                           String joinLocationName,
                           JoinType type)
    • Method Detail

      • with

        public <R> JoinOperator.EquiJoin<I1,​I2,​R> with​(org.apache.flink.api.common.functions.FlatJoinFunction<I1,​I2,​R> function)
        Finalizes a Join transformation by applying a RichFlatJoinFunction to each pair of joined elements.

        Each JoinFunction call returns exactly one element.

        Specified by:
        with in interface JoinFunctionAssigner<I1,​I2>
        Parameters:
        function - The JoinFunction that is called for each pair of joined elements.
        Returns:
        An EquiJoin that represents the joined result DataSet
        See Also:
        RichFlatJoinFunction, JoinOperator.EquiJoin, DataSet
      • projectFirst

        public <OUT extends org.apache.flink.api.java.tuple.Tuple> JoinOperator.ProjectJoin<I1,​I2,​OUT> projectFirst​(int... firstFieldIndexes)
        Applies a ProjectJoin transformation and projects the first join input

        If the first join input is a Tuple DataSet, fields can be selected by their index. If the first join input is not a Tuple DataSet, no parameters should be passed.

        Fields of the first and second input can be added by chaining the method calls of JoinOperator.ProjectJoin.projectFirst(int...) and JoinOperator.ProjectJoin.projectSecond(int...).

        Note: With the current implementation, the Project transformation loses type information.

        Parameters:
        firstFieldIndexes - If the first input is a Tuple DataSet, the indexes of the selected fields. For a non-Tuple DataSet, do not provide parameters. The order of fields in the output tuple is defined by to the order of field indexes.
        Returns:
        A ProjectJoin which represents the projected join result.
        See Also:
        Tuple, DataSet, JoinOperator.ProjectJoin
      • projectSecond

        public <OUT extends org.apache.flink.api.java.tuple.Tuple> JoinOperator.ProjectJoin<I1,​I2,​OUT> projectSecond​(int... secondFieldIndexes)
        Applies a ProjectJoin transformation and projects the second join input

        If the second join input is a Tuple DataSet, fields can be selected by their index. If the second join input is not a Tuple DataSet, no parameters should be passed.

        Fields of the first and second input can be added by chaining the method calls of JoinOperator.ProjectJoin.projectFirst(int...) and JoinOperator.ProjectJoin.projectSecond(int...).

        Note: With the current implementation, the Project transformation loses type information.

        Parameters:
        secondFieldIndexes - If the second input is a Tuple DataSet, the indexes of the selected fields. For a non-Tuple DataSet, do not provide parameters. The order of fields in the output tuple is defined by to the order of field indexes.
        Returns:
        A ProjectJoin which represents the projected join result.
        See Also:
        Tuple, DataSet, JoinOperator.ProjectJoin