Найдите слово, имеющее максимальное количество, используя топологию Trident - PullRequest
0 голосов
/ 03 января 2019

Как найти слово с максимальным количеством в топологии подсчета слов, используя топологию Trident?Вот ссылка на топологию подсчета слов Trident.https://github.com/nathanmarz/storm-starter/blob/master/src/jvm/storm/starter/trident/TridentWordCount.java

1 Ответ

0 голосов
/ 04 марта 2019

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"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...