我正在努力使用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获得相同的功能?
提前致谢!