我正在尝试为同一密钥输出SUM和COUNT。 例如。给定具有数百万个飞机延误事件的.csv。 我想使用Apache Beam(Java)求和每个飞机的延迟时间,并计算每个飞机有多少延迟。
每行都有plane_id, delay_duration, date
,等等。
我正在尝试创建两个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());
这两个PCollections可以正常工作,但是我无法弄清楚如何在3列中输出(合并?)它。总和计数。