dState 的操作是对确定的 KV 进行的;
>而 initializeState 和 snapshotState 里是没有框架隐性 set 的,相当于会对某一个不确定的 key 去update
>value了,如果一定要在这里做就需要拿到 KeyContext 自己去 set,不过不建议这么做;
>
>On Fri, May 5, 2023 at 10:58 PM sjf0115 wrote:
>
>> CheckpointedFunction 接口的 initializeState 方法提
CheckpointedFunction 接口的 initializeState 方法提供了访问 FunctionInitializationContext
的能力,而 FunctionInitializationContext 不仅提供了访问 OperatorStateStore 的能力,也提供了
KeyedStateStore 的能力。一般常见的是通过 CheckpointedFunction 来实现操作
OperatorState,但是也可以通过如下代码来获取 KeyedState:
```java
好的 谢谢
在 2022-05-24 21:23:56,"Xuyang" 写道:
>Hi,
>我debug到了代码里,似乎是个bug。如果使用OldPlanner的话,emitValue和emitUpdateWithRetract仅需定义一个就可以了,并且emitUpdateWithRetract的优先级大于emitValue。但是在Blink
> Planner里,只看有没有定义emitValue。你可以去Flink issue上提一下这个bug
>在 2022-05-23 18:24:17,"sjf0
注册临时i系统函数
tEnv.createTemporarySystemFunction("Top2", new
Top2RetractTableAggregateFunction());
// 调用函数
tEnv.from("stu_score")
.groupBy($("course"))
.flatAggregate(call("Top2", $("sco
函数代码如下:```public class Top2RetractTableAggregateFunction extends
TableAggregateFunctionTuple2Long, Integer,
Top2RetractTableAggregateFunction.Top2RetractAccumulator {private
static final Logger LOG =
LoggerFactory.getLogger(Top2RetractTableAggregateFunction.class);//
Top2 聚合中间结果数据结构