Search in sources :

Example 11 with ProjectionFactory

use of storm.trident.tuple.TridentTupleView.ProjectionFactory in project jstorm by alibaba.

the class ProjectedProcessor method prepare.

@Override
public void prepare(Map conf, TopologyContext context, TridentContext tridentContext) {
    if (tridentContext.getParentTupleFactories().size() != 1) {
        throw new RuntimeException("Projection processor can only have one parent");
    }
    _context = tridentContext;
    _factory = new ProjectionFactory(tridentContext.getParentTupleFactories().get(0), _projectFields);
}
Also used : ProjectionFactory(storm.trident.tuple.TridentTupleView.ProjectionFactory)

Example 12 with ProjectionFactory

use of storm.trident.tuple.TridentTupleView.ProjectionFactory in project storm by nathanmarz.

the class ProjectedProcessor method prepare.

@Override
public void prepare(Map conf, TopologyContext context, TridentContext tridentContext) {
    if (tridentContext.getParentTupleFactories().size() != 1) {
        throw new RuntimeException("Projection processor can only have one parent");
    }
    _context = tridentContext;
    _factory = new ProjectionFactory(tridentContext.getParentTupleFactories().get(0), _projectFields);
}
Also used : ProjectionFactory(storm.trident.tuple.TridentTupleView.ProjectionFactory)

Example 13 with ProjectionFactory

use of storm.trident.tuple.TridentTupleView.ProjectionFactory in project storm by nathanmarz.

the class StateQueryProcessor method prepare.

@Override
public void prepare(Map conf, TopologyContext context, TridentContext tridentContext) {
    List<Factory> parents = tridentContext.getParentTupleFactories();
    if (parents.size() != 1) {
        throw new RuntimeException("State query operation can only have one parent");
    }
    _context = tridentContext;
    _state = (State) context.getTaskData(_stateId);
    _projection = new ProjectionFactory(parents.get(0), _inputFields);
    _collector = new AppendCollector(tridentContext);
    _function.prepare(conf, new TridentOperationContext(context, _projection));
}
Also used : ProjectionFactory(storm.trident.tuple.TridentTupleView.ProjectionFactory) Factory(storm.trident.tuple.TridentTuple.Factory) ProjectionFactory(storm.trident.tuple.TridentTupleView.ProjectionFactory) TridentOperationContext(storm.trident.operation.TridentOperationContext)

Example 14 with ProjectionFactory

use of storm.trident.tuple.TridentTupleView.ProjectionFactory in project storm by nathanmarz.

the class GroupedMultiReducerExecutor method execute.

@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);
}
Also used : ProjectionFactory(storm.trident.tuple.TridentTupleView.ProjectionFactory) TridentTuple(storm.trident.tuple.TridentTuple)

Aggregations

ProjectionFactory (storm.trident.tuple.TridentTupleView.ProjectionFactory)14 Factory (storm.trident.tuple.TridentTuple.Factory)10 TridentOperationContext (storm.trident.operation.TridentOperationContext)8 List (java.util.List)2 TridentMultiReducerContext (storm.trident.operation.TridentMultiReducerContext)2 TridentTuple (storm.trident.tuple.TridentTuple)2