我正在试图序列化我的类RowSerializable以便在DataSet中使用它但我收到此错误
"无法读取用户代码包装器: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构造函数,所以我做了,但我仍然有同样的错误
答案 0 :(得分:0)
仅供那些需要参考的人使用。正如EJP明确指出的那样,我们需要为POJO类添加no-args构造函数,我们希望使用自定义Serializer进行序列化。
这是Sample POJO class - Record.java
这是Sample Custom Serializer Class - RecordSerializer.java
要使用上面的POJO和Custom Serializer,我们需要在执行环境中注册这些。
以下是该
的示例代码final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
env.getConfig().registerTypeWithKryoSerializer(Record.class, RecordSerializer.class);
以下是指向完整code的链接。