POJO类型破坏了缓冲池

时间:2018-12-21 03:17:22

标签: apache-flink flink-streaming

我有一个自定义源,该源发出用户定义的数据类型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);

0 个答案:

没有答案