Class RescalePartitioner<T>

  • Type Parameters:
    T - Type of the elements in the Stream being rescaled
    All Implemented Interfaces:
    Serializable, ChannelSelector<SerializationDelegate<StreamRecord<T>>>

    @Internal
    public class RescalePartitioner<T>
    extends StreamPartitioner<T>
    Partitioner that distributes the data equally by cycling through the output channels. This distributes only to a subset of downstream nodes because StreamingJobGraphGenerator instantiates a DistributionPattern.POINTWISE distribution pattern when encountering RescalePartitioner.

    The subset of downstream operations to which the upstream operation sends elements depends on the degree of parallelism of both the upstream and downstream operation. For example, if the upstream operation has parallelism 2 and the downstream operation has parallelism 4, then one upstream operation would distribute elements to two downstream operations while the other upstream operation would distribute to the other two downstream operations. If, on the other hand, the downstream operation has parallelism 2 while the upstream operation has parallelism 4 then two upstream operations will distribute to one downstream operation while the other two upstream operations will distribute to the other downstream operations.

    In cases where the different parallelisms are not multiples of each other one or several downstream operations will have a differing number of inputs from upstream operations.

    See Also:
    Serialized Form