java - Flink 中 java.util.map 和自定义 pojo 的序列化
问题描述
我正在尝试使用不从 kinesis flink 应用程序中的外部库实现 Serializable 的 pojo。在 flatMap 函数中使用它时序列化失败。
波乔
public class ExecutionRecord {
private Map<String, VariableGroup> factMap;
private List<ModelResult> models;
private List<RulesetResult> rulesets;
private Outcome outcome;
private ExecutionMetadata executionMetadata;
}
的输出TypeInformation.of(ExecutionRecord.class).toString()
PojoType<ExecutionRecord, fields = [executionMetadata: PojoType<ExecutionMetadata, fields = [endTime: String, evaluationType: String, executionHost: String, executionId: String, gmraInstanceIDs: GenericType<java.util.List>, startTime: String]>, factMap: GenericType<java.util.Map>, models: GenericType<java.util.List>, outcome: PojoType<Outcome, fields = [actions: GenericType<java.util.List>, failedActions: GenericType<java.util.List>, outcomeName: String]>, rulesets: GenericType<java.util.List>]>
错误-
java.io.NotSerializableException: ExecutionRecord
堆栈跟踪也没有显示它无法序列化的特定字段。
我应该如何注册序列化程序java.util.list
以及java.util.map
哪些被识别为泛型类型以及其余的自定义 pojo
解决方案
你可以做这样的事情
public static final TypeInformation<ExecutionRecord> TYPE_INFORMATION_POJO = Types.POJO(ExecutionRecord.class);
or
public static final TypeInformation<ExecutionRecord> TYPE_INFORMATION = TypeInformation.of(BehProdViewFLDTO.class);
并通过TYPE_INFORMATION_POJO
或传递TYPE_INFORMATION
到各州或在您可能需要的时候!
推荐阅读
- r - 对标准误差 R 进行聚类时,不同的估计,相同的模型
- javascript - 试图找到正确的方法,但我找不到
- spring-boot - JSF 外部上下文 getRealPath 在基于连接面 jsf omnifaces 的应用程序中返回 null
- android - 将光标直接插入到 Android 中的表格中
- c++ - 使用指针反转数组
- vue.js - 在 VueJs 中处理大数据
- reactjs - JSX 元素类型“App”不是 JSX 元素的构造函数。“App”类型中缺少属性“上下文”
- java - java - 如何从现有的pdf中裁剪一部分并在java中创建一个新的pdf?
- laravel - 在 laravel 控制器中从空值创建默认对象
- android-studio - 同一库中不同版本的依赖项导致运行时崩溃