我从Kafka获得了一个DataStream,其中MyModel的一个字段有两种可能的值。MyModel是一个POJO对象,它包含从Kafka消息中解析出来的领域特定的字段。
DataStream<MyModel> stream = env.addSource(myKafkaConsumer);
我希望您能为a1和a2键分别应用窗口和操作符。有什么好方法可以将它们分开处理吗?我考虑了两个选项:过滤器和选择器,但不知道哪种更快。 过滤器方法
stream
.filter(<MyModel.a == a1>)
.keyBy()
.window()
.apply()
.addSink()
stream
.filter(<MyModel.a == a2>)
.keyBy()
.window()
.apply()
.addSink()
分割加选择方法
SplitStream<MyModel> split = stream.split(…)
split
.select(<MyModel.a == a1>)
…
.addSink()
split
.select<MyModel.a == a2>()
…
.addSink()
如果拆分和选择更好,如何在基于MyModel字段的值进行拆分的情况下实现它们?
split
。也许是我做错了什么,但在我的当前项目中,当使用split
时,env.execute()
会抛出奇怪的异常。然后我用filter
替换了split
,问题就解决了。 - bolei