我正在努力使用Apache Flink找到解决以下问题的解决方案:
我有一个向量流,由本地文件夹中的文件表示。在使用DataStream<String> text = env.readFileStream(...)
找到新文本文件后,我将输入(flatMap),输入转换为SingleOutputStreamOperator<Tuple2<String, Integer>, ?>
,其中整数是来自评分函数的得分。
我想使用他们的分数来持久化包含top-k向量的全局HashMap。我使用状态转换来解决问题。
我遇到的第一个问题是HashMap保留了每个接收器数据(因此对于每个工作线程,一个数据的HashMap)。我怎样才能成为全球收藏
使用Apache Spark,我做到了这一点
JavaPairDStream<String, Integer> stateDstream = tuples.updateStateByKey(updateFunction);
然后在stateDstream
上进行转换。有没有办法使用FLink获得相同的功能?
提前致谢!