Я хочу использовать в проекте Apache Storm TridentTopology. Мне трудно понять функцию .each() из класса storm.trident.Stream. Ниже приведен пример кода, приведенный в их учебнике для справки:
TridentTopology topology = new TridentTopology();
TridentState wordCounts =
topology.newStream("spout1", spout)
.each(new Fields("sentence"), new Split(), new Fields("word"))
.groupBy(new Fields("word"))
.persistentAggregate(new MemoryMapState.Factory(), new Count(), new Fields("count"))
.parallelismHint(6);
Я не понял сигнатуру метода .each(). Ниже то, что я понял. Пожалуйста, поправьте меня, если я ошибаюсь, а также дайте дополнительную информацию для моих знаний.
.каждый()
- Первый параметр принимает поля, которые являются коррелированными ключами с исходящими значениями из spout и возвращаются из метода getOutputFields() в spout. Я до сих пор не знаю, для чего используется этот параметр.
- Второй параметр — это класс, расширяющий BaseFunction. Он обрабатывает кортеж.
- Понимание третьего параметра аналогично первому параметру.