【发布时间】:2019-07-09 10:39:22
【问题描述】:
将两个 Pcollection 与 CoGroupsByKey 方法结合起来需要数小时才能执行 8 多万条记录。从另一个 stackoverflow 帖子 CoGbkResult has more than 10000 elements,reiteration (which may be slow) is required 中注意到“CoGbkResult 有超过 10000 个元素,需要重复(可能很慢)。”
使用这种方法提高性能的任何建议。
这里是代码sn-p,
PCollection<TableRow> pc1 = ...;
PCollection<TableRow> pc2 = ...;
WithKeys<String, TableRow> withKeyValue =
WithKeys.of((TableRow row) -> String.format("%s",row.get("KEYNAME")))
.withKeyType(TypeDescriptors.strings());
PCollection<KV<String,TableRow>> keyed_pc1 =
pc1.apply("WithKeys", withKeyValue );
PCollection<KV<String,TableRow>> keyed_pc2 =
pc2.apply("WithKeys", withKeyValue );
// (org.apache.beam.sdk.extensions.joinlibrary.Join class)
PCollection<KV<String,KV<TableRow,TableRow>>> joinedCollection =
Join.innerJoin(keyed_pc1, keyed_pc2);
【问题讨论】:
标签: java google-cloud-dataflow apache-beam