You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@beam.apache.org by "Darshan Jani (Jira)" <ji...@apache.org> on 2020/05/11 01:39:00 UTC

[jira] [Created] (BEAM-9946) Enchance Partition transform to provide partitionfn with SideInputs

Darshan Jani created BEAM-9946:
----------------------------------

             Summary: Enchance Partition transform to provide partitionfn with SideInputs
                 Key: BEAM-9946
                 URL: https://issues.apache.org/jira/browse/BEAM-9946
             Project: Beam
          Issue Type: New Feature
          Components: sdk-java-core
            Reporter: Darshan Jani


Currently _Partition_ transform can partition a collection into n collections based on only _element_ value in _PartitionFn_ to decide on which partition a particular element belongs to.

{code:java}
public interface PartitionFn<T> extends Serializable {
    int partitionFor(T elem, int numPartitions);
  }
public static <T> Partition<T> of(int numPartitions, PartitionFn<? super T> partitionFn) {
    return new Partition<>(new PartitionDoFn<T>(numPartitions, partitionFn));
  }
{code}

It will be useful to have additionally _sideInputs_ also be provided to partition function. User will be able to write logic to use both _element_ value and _sideInputs_ to decide on which partition a particular element belongs to.

Proposed new API:

{code:java}
  public interface PartitionWithSideInputsFn<T> extends Serializable {
    int partitionFor(T elem, int numPartitions, Requirements requirements);
  }
public static <T> Partition<T> of(int numPartitions, PartitionWithSideInputsFn<? super T> partitionFn) {
 ...
  }
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)