Class AbstractRelationalJoin

    • Constructor Detail

      • AbstractRelationalJoin

        protected AbstractRelationalJoin()
    • Method Detail

      • getLeft

        public RecordPort getLeft()
        Returns the left input port.
        Returns:
        the left input port.
      • getRight

        public RecordPort getRight()
        Returns the right input port.
        Returns:
        the right input port
      • getOutput

        public RecordPort getOutput()
        Returns the output port. This will output the joined data.
        Returns:
        the output port.
      • getJoinCondition

        public final ScalarValuedFunction getJoinCondition()
        If non-null, the condition is evaluated for every possible matching row. Only those rows for which the keys match and the condition returns true will be output as an inner join. When determining the set of rows to output for an outer join, we output the set for which the join condition never evaluated to true. Note that, if specified, the left fields and right fields must be distinct from each other. This is because the function will be evaluated in a namespace containing all fields from the left and right.
        Returns:
        the join condition
      • setJoinCondition

        public final void setJoinCondition​(ScalarValuedFunction joinCondition)
        Sets the join condition. If non-null, the condition is evaluated for every possible matching row. Only those rows for which the keys match and the condition returns true will be output as an inner join. When determining the set of rows to output for an outer join, we output the set for which the join condition never evaluated to true. Note that, if specified, the left fields and right fields must be distinct from each other. This is because the function will be evaluated in a namespace containing all fields from the left and right.
        Parameters:
        joinCondition - the join condition
      • setJoinCondition

        public final void setJoinCondition​(String joinCondition)
        Sets the join condition. If non-null, the condition is evaluated for every possible matching row. Only those rows for which the keys match and the condition returns true will be output as an inner join. When determining the set of rows to output for an outer join, we output the set for which the join condition never evaluated to true. Note that, if specified, the left fields and right fields must be distinct from each other. This is because the function will be evaluated in a namespace containing all fields from the left and right.
        Parameters:
        joinCondition - a predicate expression in SQL-like syntax parsed into the join condition
      • getUseHashJoinHint

        public final boolean getUseHashJoinHint()
        Returns whether to perform the join as a hash join. If so, all rows on the right side will be loaded into into memory and joined with the left. This is an optimization for the case where the right side is small enough to fit into memory since it implies that the left side need not be sorted or repartitioned.
        Returns:
        whether to perform the join as a hash join
      • setUseHashJoinHint

        public final void setUseHashJoinHint​(boolean useHashJoinHint)
        Sets whether to perform the join as a hash join. If so, all rows on the right side will be loaded into into memory and joined with the left. This is an optimization for the case where the right side is small enough to fit into memory since it implies that the left side need not be sorted or repartitioned.
        Parameters:
        useHashJoinHint - whether to perform the join as a hash join
      • getJoinKeys

        public final JoinKey[] getJoinKeys()
        Returns the join keys to use when performing the join.
        Returns:
        the join keys to use when performing the join.
      • setJoinKeys

        public final void setJoinKeys​(JoinKey[] joinKeys)
        Sets the join keys to use when performing the join.
        Parameters:
        joinKeys - the join keys to use when performing the join.
      • setJoinKeys

        public final void setJoinKeys​(String[] keyFieldNames)
        Sets the join keys to use when performing the join.
        Parameters:
        keyFieldNames - the join keys to use when performing the join.
      • setJoinKeys

        public final void setJoinKeys​(List<JoinKey> joinKeys)
        Sets the join keys to use when performing the join.
        Parameters:
        joinKeys - the join keys to use when performing the join.
      • setJoinKeys

        public final void setJoinKeys​(String[] leftKeyFieldNames,
                                      String[] rightKeyFieldNames)
        Sets the join keys to use when performing the join.
        Parameters:
        leftKeyFieldNames - the left join keys to use when performing the join.
        rightKeyFieldNames - the right join keys to use when performing the join.
      • newJoinID

        protected final int newJoinID()
      • compose

        protected void compose​(CompositionContext ctx)
        Description copied from class: CompositeOperator
        Compose the body of this operator. Implementations should do the following:
        1. Perform any validation of configuration, input types, etc
        2. Instantiate and configure sub-operators, adding them to the provided context via the method OperatorComposable.add(O)
        3. Create necessary connections via the method OperatorComposable.connect(P, P). This includes connections from the composite's input ports to sub-operators, connections between sub-operators, and connections from sub-operators output ports to the composite's output ports
        Specified by:
        compose in class CompositeOperator
        Parameters:
        ctx - the context