【发布时间】:2018-03-21 15:37:57
【问题描述】:
是否有可能在 Beam 中有一个 PCollection 来“保存”同一超类的不同对象,这样
PCollection<T extends SuperClass> result = input.apply(ParDo.of(new DoFnThatReturnsSubClasses()));
而不是
PCollection<SubClassA> A = input.apply(ParDo.of(new DoFnSubClassesA()));
PCollection<SubClassB> B = input.apply(ParDo.of(new DoFnSubClassesB()));
我的超类包含一些基本字段如下
public class SuperClass {
String key;
Long timestamp;
}
但我的子类将包含一个附加字段,该字段具有不同数据类型的相同变量名称。即
public class SubClassA extends SuperClass {
List<HashMap<String, String>> value = new ArrayList<>();
}
另一个子类,
public class SubClassB extends SuperClass {
String value;
}
我真正想要实现的是允许字段value 具有不同的数据类型。我唯一能想到的就是把它分成不同的子类。我意识到这可能更像是一个 Java 编程问题和对该语言的理解不足。
【问题讨论】:
标签: java google-cloud-dataflow apache-beam dataflow