【发布时间】:2018-06-20 11:41:37
【问题描述】:
我们有一些旧文件格式,我需要将其迁移到 Avro 存储。棘手的部分是记录基本上有
- 一些常用字段,
- 鉴别器字段和
- 一些独特的字段,特定于鉴别器字段选择的类型
它们都存储在同一个文件中,没有任何顺序,完全相互混合。 (这是遗产...)
在Java/面向对象编程中,我们的记录概念可以表示如下:
abstract class RecordWithCommonFields {
private Long commonField1;
private String commonField2;
...
}
class RecordTypeA extends RecordWithCommonFields {
private Integer specificToA1;
private String specificToA1;
...
}
class RecordTypeB extends RecordWithCommonFields {
private Boolean specificToB1;
private String specificToB1;
...
}
想象一下数据是这样的:
commonField1Value;commonField2Value,TYPE_IS_A,specificToA1Value,specificToA1Value
commonField1Value;commonField2Value,TYPE_IS_B,specificToB1Value,specificToB1Value
所以我想处理传入的文件并将其内容写入 Avro 格式,以某种方式表示不同类型的记录。
有人可以给我一些关于如何实现这一目标的想法吗?
【问题讨论】:
标签: avro spark-avro