count怎么调用在java中_java-如何使用flink count窗口

当我使用countWindowBeforeWindowFunction时,在运行代码之后,我得到了一个错误,比如当前不支持状态迁移,detail msg是

org.apache.flink.util.FlinkRuntimeException: org.apache.flink.util.StateMigrationException: State migration is currently not supported.

at org.apache.flink.runtime.state.heap.HeapKeyedStateBackend.create(HeapKeyedStateBackend.java:216)

at org.apache.flink.streaming.api.operators.InternalTimeServiceManager.createTimerPriorityQueue(InternalTimeServiceManager.java:121)

at org.apache.flink.streaming.api.operators.InternalTimeServiceManager.registerOrGetTimerService(InternalTimeServiceManager.java:106)

at org.apache.flink.streaming.api.operators.InternalTimeServiceManager.getInternalTimerService(InternalTimeServiceManager.java:87)

at org.apache.flink.streaming.api.operators.AbstractStreamOperator.getInternalTimerService(AbstractStreamOperator.java:741)

at org.apache.flink.streaming.runtime.operators.windowing.WindowOperator.open(WindowOperator.java:225)

at org.apache.flink.streaming.runtime.operators.windowing.EvictingWindowOperator.open(EvictingWindowOperator.java:430)

at org.apache.flink.streaming.runtime.tasks.StreamTask.openAllOperators(StreamTask.java:424)

at org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:290)

at org.apache.flink.runtime.taskmanager.Task.run(Task.java:711)

at java.lang.Thread.run(Thread.java:748)

Caused by: org.apache.flink.util.StateMigrationException: State migration is currently not supported.

at org.apache.flink.util.StateMigrationException.notSupported(StateMigrationException.java:42)

... 11 more

我的生成器代码是

SingleOutputStreamOperator singleOutputStream = iotDataSource.flatMap(new String2MetricFlatMapFunctionWithOutTimeAlignment())

.filter(new WaterMarkFilterFunction(Time.seconds(WATERMARK_SIZE)))

.filter(new DataCleanFilterFunction())

.map(new RelateParkMapFunction())

.assignTimestampsAndWatermarks(new CommonBoundedOutOfOrdernessTimestampExtractor(Time.seconds(MAX_OUT_OF_ORDERNESS)))

.keyBy((KeySelector) metric -> metric.getPark())

.countWindow(10,1)

.apply(new RealTimeAlarmWindowApplyFunction(CACHE_SIZE))

.map(new ResultMapFunction())

.disableChaining();

可能是RealTimeAlarmWindowApplyFunction出错了,

public class RealTimeAlarmWindowApplyFunction extends RichWindowFunction {

private Logger logger = LoggerFactory.getLogger(RealTimeAlarmWindowApplyFunction.class);

private int cacheDataSize;

public RealTimeAlarmWindowApplyFunction(int cacheDataSize) {

this.cacheDataSize = cacheDataSize;

}

@Override

public void apply(String key, GlobalWindow window, Iterable<Metric> input, Collector<ResultAction> out) throws Exception {

//...

// process code with no error

//...

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值