gpt4 book ai didi

java - Apache Flink : Map function over values of a KeyedStream, 不丢失键控状态

转载 作者:行者123 更新时间:2023-12-03 03:49:56 26 4
gpt4 key购买 nike

我有一个键控流:

KeyedStream<String, Data> keyed = 
env.addSource(...)
.map(new Parser())
.keyBy(i -> i.key)

我想在我的流上运行全状态进程函数;但process将返回一个正常的未键控流,导致丢失KeyedStream并迫使我再次调用keyBy:

SingleOutputStreamOperator<Data> unkeyed = keyed.process(new Function)
KeyedStream<String, Data> keyedAgain = keyed.keyBy(i -> i.key)
  • 有什么方法可以对 KeyedStream 上的值调用映射函数吗?

  • 如何在不使用像 ProcessFunction 这样会导致不必要成本的低级 API 的情况下运行全状态函数:运行时的新子任务,以及重新整理我的数据?

最佳答案

您可以使用 RichMapFunctionRichFlatmapFunction 并有权访问 Flink 的托管状态机制。与 ProcessFunction 相比,您将缺少计时器。

参见示例here .

关于java - Apache Flink : Map function over values of a KeyedStream, 不丢失键控状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45548518/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com