@Override public void cleanup() { _reducer.cleanup(); }
@Override public void complete(Map<TridentTuple, Object> state, TridentCollector collector) { for (Map.Entry e : state.entrySet()) { TridentTuple group = (TridentTuple) e.getKey(); Object val = e.getValue(); _reducer.complete(val, group, collector); } }
@Override public void execute(Map<TridentTuple, Object> state, int streamIndex, TridentTuple full, TridentCollector collector) { ProjectionFactory groupFactory = _groupFactories.get(streamIndex); ProjectionFactory inputFactory = _inputFactories.get(streamIndex); TridentTuple group = groupFactory.create(full); TridentTuple input = inputFactory.create(full); Object curr; if (!state.containsKey(group)) { curr = _reducer.init(collector, group); state.put(group, curr); } else { curr = state.get(group); } _reducer.execute(curr, streamIndex, group, input, collector); }
@Override public void prepare(Map conf, TridentMultiReducerContext context) { for (int i = 0; i < _groupFields.size(); i++) { _groupFactories.add(context.makeProjectionFactory(i, _groupFields.get(i))); _inputFactories.add(context.makeProjectionFactory(i, _inputFields.get(i))); } _reducer.prepare(conf, new TridentMultiReducerContext((List) _inputFactories)); }
@Override public void prepare(Map conf, TridentMultiReducerContext context) { for (int i = 0; i < _groupFields.size(); i++) { _groupFactories.add(context.makeProjectionFactory(i, _groupFields.get(i))); _inputFactories.add(context.makeProjectionFactory(i, _inputFields.get(i))); } _reducer.prepare(conf, new TridentMultiReducerContext((List) _inputFactories)); }
@Override public void execute(Map<TridentTuple, Object> state, int streamIndex, TridentTuple full, TridentCollector collector) { ProjectionFactory groupFactory = _groupFactories.get(streamIndex); ProjectionFactory inputFactory = _inputFactories.get(streamIndex); TridentTuple group = groupFactory.create(full); TridentTuple input = inputFactory.create(full); Object curr; if (!state.containsKey(group)) { curr = _reducer.init(collector, group); state.put(group, curr); } else { curr = state.get(group); } _reducer.execute(curr, streamIndex, group, input, collector); }
@Override public void prepare(Map conf, TridentMultiReducerContext context) { for(int i=0; i<_groupFields.size(); i++) { _groupFactories.add(context.makeProjectionFactory(i, _groupFields.get(i))); _inputFactories.add(context.makeProjectionFactory(i, _inputFields.get(i))); } _reducer.prepare(conf, new TridentMultiReducerContext((List) _inputFactories)); }
@Override public void complete(Map<TridentTuple, Object> state, TridentCollector collector) { for (Map.Entry e : state.entrySet()) { TridentTuple group = (TridentTuple) e.getKey(); Object val = e.getValue(); _reducer.complete(val, group, collector); } }
@Override public void cleanup() { _reducer.cleanup(); }
@Override public void execute(Map<TridentTuple, Object> state, int streamIndex, TridentTuple full, TridentCollector collector) { ProjectionFactory groupFactory = _groupFactories.get(streamIndex); ProjectionFactory inputFactory = _inputFactories.get(streamIndex); TridentTuple group = groupFactory.create(full); TridentTuple input = inputFactory.create(full); Object curr; if(!state.containsKey(group)) { curr = _reducer.init(collector, group); state.put(group, curr); } else { curr = state.get(group); } _reducer.execute(curr, streamIndex, group, input, collector); }
@Override public void complete(Map<TridentTuple, Object> state, TridentCollector collector) { for(Map.Entry e: state.entrySet()) { TridentTuple group = (TridentTuple) e.getKey(); Object val = e.getValue(); _reducer.complete(val, group, collector); } }
@Override public void cleanup() { _reducer.cleanup(); }