对于流处理作业,我定义了一个POJO类,它具有一个通用参数T
和一个类型为ArrayList<T>
的属性,我将其用作DataStream
中的元素类型,如下所示:以及CoKeyedProcessFunction
中有状态计算中状态存储的类型。
class TestClass<T> {
ArrayList<T> list;
// ... getter and setter for list
}
对于ArrayList<T>
,Flink的序列化要归功于Kryo,有关Flink在启动流处理作业时会对此发出警告。
似乎Flink包含用于列表(尤其是ArrayLists)的专用序列化程序,我希望Flink能够以与原始值及其装箱版本相同的方式自动识别并使用这些序列化程序。
我是否需要强制Flink使用正确的序列化程序?