Package org.apache.heron.api.grouping
Interface CustomStreamGrouping
-
- All Superinterfaces:
Serializable
,StreamGrouping
- All Known Implementing Classes:
JoinCustomGrouping
,ReduceByKeyAndWindowCustomGrouping
,RemapCustomGrouping
public interface CustomStreamGrouping extends StreamGrouping
This is the interface for user defined stream grouping strategies.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default org.apache.heron.api.generated.TopologyAPI.InputStream.Builder
buildStream(String componentName, String streamId)
Build InputStream for CustomStreamGrouping implementations.List<Integer>
chooseTasks(List<Object> values)
This function implements a custom stream grouping.void
prepare(TopologyContext context, String component, String streamId, List<Integer> targetTasks)
Tells the stream grouping at runtime the tasks in the target bolt.
-
-
-
Method Detail
-
prepare
void prepare(TopologyContext context, String component, String streamId, List<Integer> targetTasks)
Tells the stream grouping at runtime the tasks in the target bolt. This information should be used in chooseTasks to determine the target tasks.It also tells the grouping the metadata on the stream this grouping will be used on.
-
chooseTasks
List<Integer> chooseTasks(List<Object> values)
This function implements a custom stream grouping. It takes in as input the number of tasks in the target bolt in prepare and returns the tasks to send the tuples to.- Parameters:
values
- the values to group on
-
buildStream
default org.apache.heron.api.generated.TopologyAPI.InputStream.Builder buildStream(String componentName, String streamId)
Build InputStream for CustomStreamGrouping implementations.- Specified by:
buildStream
in interfaceStreamGrouping
- Parameters:
componentName
- The parent component of this grouping logicstreamId
- The id of the input stream- Returns:
- An InputStream builder to be used by BoltDeclarer
-
-