我正在序列化我的类Rowserializable,以便在数据集中使用它,但是我会遇到此错误
"无法读取用户代码包装器:es.foo.flink.utils.rowserializable;没有有效的构造函数"
public class RowSerializable extends Row implements Serializable {
private Object[] fields2;
public RowSerializable(int arity){
super(arity);
this.fields2 = new Object[arity];
}
public RowSerializable(){
super(0);
}
}
首先我没有创建的非ARG构造函数,所以我仍然有相同的错误
仅适合需要参考的人。正如EJP明确指出的那样,我们需要为POJO类添加NO-ARGS构造函数,我们希望与自定义序列化序列化。
在这里示例pojo类-recor.java
这是一个示例自定义序列化器类-Recorderializer.java
要使用上述POJO和自定义序列化器,我们需要在执行环境中注册它们。
以下是该
的示例代码final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.getConfig().registerTypeWithKryoSerializer(Record.class, RecordSerializer.class);
这是完整代码的链接。