Apache Flink を使用して、次の問題の解決策を見つけるのに苦労しています。
ローカル フォルダー内のファイルによって表されるベクトルのストリームがあります。を使用して新しいテキスト ファイルをDataStream<String> text = env.readFileStream(...)
見つけた後、入力を に変換 (flatMap) します。IntegerSingleOutputStreamOperator<Tuple2<String, Integer>, ?>
はスコアリング関数からのスコアです。
スコアを使用して、トップ k ベクトルを含むグローバル HashMap を保持したいと考えています。ステートフル変換を使用して問題に取り組みました。
私が抱えている最初の問題は、HashMap がシンクごとのデータを保持することです (つまり、ワーカーのスレッドごとに、データの HashMap が 1 つ)。それをグローバルコレクションにするにはどうすればよいですか
Apache Spark を使用して、私はそれを可能にしました。
JavaPairDStream<String, Integer> stateDstream = tuples.updateStateByKey(updateFunction);
で変換を行いstateDstream
ます。FLink を使用して同じ機能を得る方法はありますか?
前もって感謝します!