我有一个自定义源,该源发出用户定义的数据类型BaseEvent。当BaseEvent不是POJO时,以下代码可以正常工作。 但是,当我通过添加默认构造函数将其更改为POJO时,在Collect方法上遇到了“缓冲池被破坏”运行时异常。我正在运行Flink 1.7.0
DataStream<BaseEvent> eventStream = see.addSource(new AgoraSource(configFile, instance));
DataStream<Tuple4<String, Long, Double, String>> result_order = eventStream
.filter(e -> e instanceof OrderEvent)
.map(e -> (OrderEvent)e)
.map(e -> new Tuple3<>(e.SecurityID, Long.valueOf(1), Double.valueOf(e.OriginalQuantity))).returns(info_tuple3)
.keyBy(e -> e.f0)
.timeWindow(Time.seconds(5))
.reduce((a, b) -> new Tuple3<>(a.f0, a.f1 + b.f1, a.f2 + b.f2))
.map(e -> new Tuple4<>(e.f0, e.f1, e.f2, "Order")).returns(info_tuple4);