Java 如何合并两个PCollection KV<&燃气轮机;用钥匙?

Java 如何合并两个PCollection KV<&燃气轮机;用钥匙?,java,apache-beam,Java,Apache Beam,我试图为同一个键输出一个和和和一个计数。 给出了一个包含数百万次飞机延误事件的.csv。 使用ApacheBeam(Java),我想计算每个平面的延迟持续时间,并计算每个平面有多少延迟 每行都有平面id、延迟持续时间、日期等 我正在尝试创建两个PCollection,并希望在输出之前合并它们 PCollection<KV<String, Integer>> sum = eventInfo.apply(MapElements.into(TypeDescriptors.kv

我试图为同一个键输出一个和和和一个计数。 给出了一个包含数百万次飞机延误事件的.csv。 使用ApacheBeam(Java),我想计算每个平面的延迟持续时间,并计算每个平面有多少延迟

每行都有
平面id、延迟持续时间、日期等

我正在尝试创建两个PCollection,并希望在输出之前合并它们

PCollection<KV<String, Integer>> sum =  eventInfo.apply(MapElements.into(TypeDescriptors.kvs(TypeDescriptors.strings(),TypeDescriptors.integers())).via((Event.EventInfo gInfo) -> KV.of(gInfo.getKey('plane_id'), gInfo.getDuration()))).apply(Sum.integersPerKey());

PCollection<KV<String, Long>> count =  eventInfo.apply(MapElements.into(TypeDescriptors.kvs(TypeDescriptors.strings(), TypeDescriptors.integers())).via((Event.EventInfo gInfo) -> KV.of(gInfo.getKey('plane_id'), gInfo.getDuration()))).apply(Count.perKey());
PCollection sum=eventInfo.apply(MapElements.into(typeDescriptor.strings(),typeDescriptor.integers()).via((Event.eventInfo gInfo)->KV.of(gInfo.getKey('plane_id'),gInfo.getDuration()).apply(sum.integersperPerkey());
PCollection count=eventInfo.apply(maplements.into(typedescriptor.strings(),typedescriptor.integers()).via((Event.eventInfo gInfo)->KV.of(gInfo.getKey('plane_id'),gInfo.getDuration()).apply(count.perKey());

这两个PCollection按预期工作,但我不知道如何在3列key | sum | count中输出它(合并?)。

您将需要它,这将帮助您为同一个key找到sum和count

经过几个小时的搜索,我创建了两个元组,并使用了CoGroupByKey,如您所说。然后,我通过创建一个具有所需输出
Event.MyResult xpto=new Event.MyResult(id、sum、count)的类来输出它
c.output(xpto)