我正在尝试在Dataflow中执行联合操作。是否有用于在Dataflow中结合两个PCollections的示例代码?
答案 0 :(得分:8)
执行此操作的一种简单方法是将Flatten()与RemoveDuplicates()结合使用。根据您是否需要不相交联合或集合理论联合,可以省略RemoveDuplicates调用:
PCollection<String> pc1 = ...;
PCollection<String> pc2 = ...;
PCollection<String> union = PCollectionList.of(pc1).and(pc2)
.apply(Flatten.<String>create())
.apply(RemoveDuplicates.<String>create());
答案 1 :(得分:0)
如果你有两个以上的集合,一个方便的解决方案是填充一个PCollection列表,根据它创建一个PCollectionList和Flatten:
List<PCollection<TableRow>> tabs = new ArrayList<>();
/* ... fill tabs */
PCollectionList<TableRow> tabList = PCollectionList.of(tabs);
PCollection<TableRow> bigOne = tabList.apply(Flatten.<TableRow>create());
希望这有帮助。