我正在努力使用Apache Flink找到解决以下问题的解决方案:

我有一个向量流,由本地文件夹中的文件表示 . 在使用 DataStream<String> text = env.readFileStream(...) 定位新文本文件后,我将(flatMap)转换为 SingleOutputStreamOperator<Tuple2<String, Integer>, ?> ,其中Integer是来自评分函数的分数 .

我想使用他们的分数来持久化包含top-k向量的全局HashMap . 我使用状态转换来解决问题 .

  • 我遇到的第一个问题是HashMap保留了每个接收器数据(因此对于每个工作线程,一个数据的HashMap) . 我怎样才能成为全球系列

  • 使用Apache Spark,我通过 JavaPairDStream<String, Integer> stateDstream = tuples.updateStateByKey(updateFunction); 实现了这一点

然后在 stateDstream 上进行转换 . 有没有办法使用FLink获得相同的功能?

提前致谢!