为了账号安全,请及时绑定邮箱和手机立即绑定

如何通过键合并两个PCollection KV<>?

如何通过键合并两个PCollection KV<>?

DIEA 2023-07-13 14:39:16
我试图输出同一个键的 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());这两个 PCollection 按预期工作,但我不知道如何在 3 列中输出它(合并它?)总和| 数数。
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

您将需要CoGBK,它将帮助您共同定位总和并计算相同的密钥。



查看完整回答
反对 回复 2023-07-13
  • 1 回答
  • 0 关注
  • 90 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信