プロジェクトで Apache Storm の TridentTopology を使用したいと考えています。私は、storm.trident.Stream クラスの .each() 関数を理解するのが難しいと感じています。以下は、参照用のチュートリアルに記載されているサンプルコードです。
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() のシグネチャがわかりませんでした。以下は私が理解したものです。私が間違っている場合は修正してください。また、私の知識についてさらに情報を提供してください。
。各()
- 最初のパラメーターは、スパウトから出力された値に関連付けられたキーであり、スパウトの getOutputFields() メソッドから返されるフィールドを受け取ります。なぜそのパラメーターが使用されるのかはまだわかりません。
- 2 番目のパラメーターは、BaseFunction を拡張するクラスです。タプルを処理します。
- 3 番目のパラメーターの理解は、1 番目のパラメーターと似ています。