为什么不赞成使用StateDescriptor设置默认状态值



我发现方法public ValueStateDescriptor(String name,TypeInformation<T> typeInfo,T defaultValue)现在被弃用,文档中说通过检查状态的内容是否为null来管理默认值。我想知道这个建议有什么用?

查看引入折旧的FLINK-5155:

在描述符中使用默认值对某些serializers,我们不会失去一个功能,因为用户可以随时检查如果必需的现在,我们总是强迫人们指定一个默认值价值,即使他们不需要。

以及相应的PR:https://github.com/apache/flink/pull/3108

此外,如果您在(Rich(函数中使用此函数,则应在主函数(如map()flatMap()(中以以下方式检查null,而不是open():

if( state.value() == null ) {
state.update(...defaultValue...);
}

open()不关心在中使用state.update()

相关内容

  • 没有找到相关文章

最新更新