我有两个流。它们都是1小时窗口的聚合数据。我想压缩这些流,因此在相同的时间跨度上的聚合被组合在一起,如果现在存在这样的相应的匹配,则可能具有空值。
DataStream<OneHourAggA> one =
sourceA
.keyBy(d -> (String) d.values.get("m"))
.timeWindow(Time.hours(1))
.apply(new WorkWindwFolder());
DataSteam<OneHourAggB> other =
sourceB
.keyBy(d -> (String) d.values.get("m"))
.timeWindow(Time.hours(1))
.apply(new WorkWindwFolder());
DataStream<Tuple2<Option<OneHourAggA>,Option<OneHourAggB>> zipped =
sourceA.???(sourceB)
我怎样才能实现这个目标?
答案 0 :(得分:1)
您必须使用coGroup
操作来执行聚合结果的外部联接。您将使用相同的时间窗口规范进行coGroup操作。这是有效的,因为前一个窗口的聚合结果将仅为每个窗口生成一个元素,并且此元素将获得分配的此窗口的最大时间戳。