在下面的示例中,我想使用Operator State API
中的No-Keyed Stream
保存count
的状态。我该怎么办?
public static class MapFunction implements MapFunction<String, String>,CheckpointedFunction{
int count = 0;
@Override
public String map(String value) throws Exception {
// TODO Auto-generated method stub
String message;
message = value;
count++;
return message;
}
@Override
public void snapshotState(FunctionSnapshotContext context) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void initializeState(FunctionInitializationContext context) throws Exception {
// TODO Auto-generated method stub
}
}
谢谢您的回答。
答案 0 :(得分:1)
正如Dawid所指出的那样,文档是一个很好的起点。最简单的方法是为您实现ListCheckpointed接口。调用snapshotState()
时,您将返回count
的单例列表(作为Integer
)。调用restoreState()
时,您将遍历Integer
值的列表,并对它们求和以设置count
变量。