flink 如何组合流和乘法映射

问题描述

我有一个流(非键控流)和 3 个映射(每个映射的结果来自不同的 rest api)。

这3张地图是静态的,之后不会改变。

我想通过使用这3个映射将元素映射到流中的新类型,如何将3个映射广播到流?

据我所知,加入或连接不足以做到这一点..请帮忙。

解决方法

如果地图(如在 java 地图中)是静态的,您可以将它们加载到 RichMapFunction 中的 open 中,并在 map 中应用它们。为了提高性能,您应该在静态变量中初始化它们一次(在类上同步或静态互斥锁)。 如果地图很小,您也可以在 main 中初始化它们,并将它们作为参数传递给 MapFunction。只要地图中的所有内容都是 Serializable,它就会正常工作。