package storm.applications.bolt; import backtype.storm.tuple.Fields; import backtype.storm.tuple.Tuple; import backtype.storm.tuple.Values; import static storm.applications.constants.ClickAnalyticsConstants.*; /** * User: domenicosolazzo */ public class VisitStatsBolt extends AbstractBolt { private int total = 0; private int uniqueCount = 0; @Override public void initialize() { } @Override public void execute(Tuple input) { boolean unique = Boolean.parseBoolean(input.getStringByField(Field.UNIQUE)); total++; if(unique) uniqueCount++; collector.emit(input, new Values(total, uniqueCount)); collector.ack(input); } @Override public Fields getDefaultFields() { return new Fields(Field.TOTAL_COUNT, Field.TOTAL_UNIQUE); } }