Search in sources :

Example 1 with FIELD_RANKING

use of com.github.ashvina.heron.trending.TopTrendingTopology.FIELD_RANKING in project streaming-samples by ashvina.

the class TotalRanker method execute.

@Override
public void execute(Tuple tuple, BasicOutputCollector collector) {
    restriction.execute();
    Rankings partialRank = (Rankings) tuple.getValueByField(FIELD_RANKING);
    rankings.updateWith(partialRank);
    if (System.currentTimeMillis() - previousEmitTime > emitRate.toMillis()) {
        String result = rankings.getRankings().stream().map(trend -> trend.getObject() + ":" + trend.getCount()).collect(Collectors.joining(", "));
        System.out.println(result);
        previousEmitTime = System.currentTimeMillis();
    }
}
Also used : Rankings(org.apache.storm.starter.tools.Rankings) OutputFieldsDeclarer(com.twitter.heron.api.topology.OutputFieldsDeclarer) FIELD_RANKING(com.github.ashvina.heron.trending.TopTrendingTopology.FIELD_RANKING) Duration(java.time.Duration) Map(java.util.Map) Fields(com.twitter.heron.api.tuple.Fields) BaseRateLimitedBolt(com.github.ashvina.heron.BaseRateLimitedBolt) Tuple(com.twitter.heron.api.tuple.Tuple) BasicOutputCollector(com.twitter.heron.api.bolt.BasicOutputCollector) Collectors(java.util.stream.Collectors) TopologyContext(com.twitter.heron.api.topology.TopologyContext) Rankings(org.apache.storm.starter.tools.Rankings)

Aggregations

BaseRateLimitedBolt (com.github.ashvina.heron.BaseRateLimitedBolt)1 FIELD_RANKING (com.github.ashvina.heron.trending.TopTrendingTopology.FIELD_RANKING)1 BasicOutputCollector (com.twitter.heron.api.bolt.BasicOutputCollector)1 OutputFieldsDeclarer (com.twitter.heron.api.topology.OutputFieldsDeclarer)1 TopologyContext (com.twitter.heron.api.topology.TopologyContext)1 Fields (com.twitter.heron.api.tuple.Fields)1 Tuple (com.twitter.heron.api.tuple.Tuple)1 Duration (java.time.Duration)1 Map (java.util.Map)1 Collectors (java.util.stream.Collectors)1 Rankings (org.apache.storm.starter.tools.Rankings)1