3

我有两个流。它们都是超过 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)

我怎样才能做到这一点?

4

1 回答 1

1

您必须使用coGroup操作来执行聚合结果的外连接。您将对 coGroup 操作使用相同的时间窗口规范。之所以可行,是因为前一个窗口的聚合结果每个窗口只会生成一个元素,并且该元素将获得分配的该窗口的最大时间戳。

于 2016-04-22T12:21:15.777 回答