Search in sources :

Example 1 with ReducerValueUpdater

use of storm.trident.state.ReducerValueUpdater in project storm by nathanmarz.

the class MapReducerAggStateUpdater method updateState.

@Override
public void updateState(MapState map, List<TridentTuple> tuples, TridentCollector collector) {
    Map<List<Object>, List<TridentTuple>> grouped = new HashMap();
    List<List<Object>> groups = new ArrayList<List<Object>>(tuples.size());
    List<Object> values = new ArrayList<Object>(tuples.size());
    for (TridentTuple t : tuples) {
        List<Object> group = _groupFactory.create(t);
        List<TridentTuple> groupTuples = grouped.get(group);
        if (groupTuples == null) {
            groupTuples = new ArrayList();
            grouped.put(group, groupTuples);
        }
        groupTuples.add(_inputFactory.create(t));
    }
    List<List<Object>> uniqueGroups = new ArrayList(grouped.keySet());
    List<ValueUpdater> updaters = new ArrayList(uniqueGroups.size());
    for (List<Object> group : uniqueGroups) {
        updaters.add(new ReducerValueUpdater(_agg, grouped.get(group)));
    }
    List<Object> results = map.multiUpdate(uniqueGroups, updaters);
    for (int i = 0; i < uniqueGroups.size(); i++) {
        List<Object> group = uniqueGroups.get(i);
        Object result = results.get(i);
        collector.emit(_factory.create(new List[] { group, new Values(result) }));
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Values(backtype.storm.tuple.Values) ReducerValueUpdater(storm.trident.state.ReducerValueUpdater) ValueUpdater(storm.trident.state.ValueUpdater) ReducerValueUpdater(storm.trident.state.ReducerValueUpdater) ArrayList(java.util.ArrayList) List(java.util.List) ComboList(storm.trident.tuple.ComboList) TridentTuple(storm.trident.tuple.TridentTuple)

Example 2 with ReducerValueUpdater

use of storm.trident.state.ReducerValueUpdater in project storm by nathanmarz.

the class ReducerAggStateUpdater method updateState.

@Override
public void updateState(Snapshottable state, List<TridentTuple> tuples, TridentCollector collector) {
    Object newVal = state.update(new ReducerValueUpdater(_agg, tuples));
    collector.emit(new Values(newVal));
}
Also used : Values(backtype.storm.tuple.Values) ReducerValueUpdater(storm.trident.state.ReducerValueUpdater)

Example 3 with ReducerValueUpdater

use of storm.trident.state.ReducerValueUpdater in project jstorm by alibaba.

the class ReducerAggStateUpdater method updateState.

@Override
public void updateState(Snapshottable state, List<TridentTuple> tuples, TridentCollector collector) {
    Object newVal = state.update(new ReducerValueUpdater(_agg, tuples));
    collector.emit(new Values(newVal));
}
Also used : Values(backtype.storm.tuple.Values) ReducerValueUpdater(storm.trident.state.ReducerValueUpdater)

Example 4 with ReducerValueUpdater

use of storm.trident.state.ReducerValueUpdater in project jstorm by alibaba.

the class MapReducerAggStateUpdater method updateState.

@Override
public void updateState(MapState map, List<TridentTuple> tuples, TridentCollector collector) {
    Map<List<Object>, List<TridentTuple>> grouped = new HashMap<>();
    for (TridentTuple t : tuples) {
        List<Object> group = _groupFactory.create(t);
        List<TridentTuple> groupTuples = grouped.get(group);
        if (groupTuples == null) {
            groupTuples = new ArrayList<>();
            grouped.put(group, groupTuples);
        }
        groupTuples.add(_inputFactory.create(t));
    }
    List<List<Object>> uniqueGroups = new ArrayList<>(grouped.keySet());
    List<ValueUpdater> updaters = new ArrayList<>(uniqueGroups.size());
    for (List<Object> group : uniqueGroups) {
        updaters.add(new ReducerValueUpdater(_agg, grouped.get(group)));
    }
    List<Object> results = map.multiUpdate(uniqueGroups, updaters);
    for (int i = 0; i < uniqueGroups.size(); i++) {
        List<Object> group = uniqueGroups.get(i);
        Object result = results.get(i);
        collector.emit(_factory.create(new List[] { group, new Values(result) }));
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Values(backtype.storm.tuple.Values) ReducerValueUpdater(storm.trident.state.ReducerValueUpdater) ValueUpdater(storm.trident.state.ValueUpdater) ReducerValueUpdater(storm.trident.state.ReducerValueUpdater) ArrayList(java.util.ArrayList) List(java.util.List) ComboList(storm.trident.tuple.ComboList) TridentTuple(storm.trident.tuple.TridentTuple)

Aggregations

Values (backtype.storm.tuple.Values)4 ReducerValueUpdater (storm.trident.state.ReducerValueUpdater)4 ArrayList (java.util.ArrayList)2 HashMap (java.util.HashMap)2 List (java.util.List)2 ValueUpdater (storm.trident.state.ValueUpdater)2 ComboList (storm.trident.tuple.ComboList)2 TridentTuple (storm.trident.tuple.TridentTuple)2