可能是你没有在open方法里从上下文获取mapstate
e.g.:
map = getRuntimeContext().getMapState(new MapStateDescriptor(mapname,
xx.class, xx.class))吗
-邮件原件-
发件人: 谌祖安 [mailto:shenz...@pcitech.com]
发送时间: 2021年2月7日 星期日 16:25
收件人: user-zh
主题: procesElement中每天数据都put 进入map,但下一条数据来时map都是空的咨询
您好!
重载procesElement方
: procesElement中每天数据都put 进入map,但下一条数据来时map都是空的咨询
keyedStream? key不同可能是。
谌祖安 于2021年2月7日周日 下午6:00写道:
> 您好!
>
>
> 重载procesElement方法,每条stream数据处理时,put数据进入map,后面每条数据处理时先判断是否在map中有相同的key值,无则新增后put进map,有则加工后put进map。
> 在实际代码中发现,每次写入put后,map有数据,但处理下一条数据时,先从map读取数据,发现map已经为空。
> 请问是哪里写错
keyedStream? key不同可能是。
谌祖安 于2021年2月7日周日 下午6:00写道:
> 您好!
>
>
> 重载procesElement方法,每条stream数据处理时,put数据进入map,后面每条数据处理时先判断是否在map中有相同的key值,无则新增后put进map,有则加工后put进map。
> 在实际代码中发现,每次写入put后,map有数据,但处理下一条数据时,先从map读取数据,发现map已经为空。
> 请问是哪里写错了吗? 和 flink官网中 state.update(current);有什么不同吗?
>
> 以下为代码:
>
您好!
重载procesElement方法,每条stream数据处理时,put数据进入map,后面每条数据处理时先判断是否在map中有相同的key值,无则新增后put进map,有则加工后put进map。
在实际代码中发现,每次写入put后,map有数据,但处理下一条数据时,先从map读取数据,发现map已经为空。
请问是哪里写错了吗? 和 flink官网中 state.update(current);有什么不同吗?
以下为代码:
private MapState map; //定义map
@Override
public void