Trident API предоставляет max & maxBy операций, которые возвращают максимальное значение на каждом разделе пакета кортежей в потоке трезубца.
Итак, после вычисления количества каждого слова, как показано ниже:
Stream wordCountsStream = topology.newStream("spout1", spout).parallelismHint(16).each(new Fields("sentence"),
new Split(), new Fields("word")).groupBy(new Fields("word")).persistentAggregate(new MemoryMapState.Factory(),
new Count(), new Fields("count")).parallelismHint(16).newValuesStream();
Используйте maxBy , чтобы получить слово с максимальным количеством:
wordCountsStream.maxBy(new Fields("count"))