2

我正在努力寻找解决以下问题的方法,使用 Apache Flink:

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

我想保留一个包含前 k 个向量的全局 HashMap,使用它们的分数。我使用有状态的转换来解决这个问题。

  1. 我遇到的第一个问题是 HashMap 保留每个接收器的数据(因此对于每个工作线程,一个 HashMap 数据)。我怎样才能使它成为一个全球集合

  2. 使用 Apache Spark,我通过 JavaPairDStream<String, Integer> stateDstream = tuples.updateStateByKey(updateFunction);

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

提前致谢!

4

0 回答 0