Google cloud dataflow 如何获取当前滑动窗口的最大时间戳

Google cloud dataflow 如何获取当前滑动窗口的最大时间戳,google-cloud-dataflow,Google Cloud Dataflow,我使用的是一个X大小和Y周期的滑动时间窗口。为了标记每个窗口的输出,我想获取PCollection当前窗口的时间戳 PCollection windowedInput=输入 .将(窗口)应用于( 滑动窗口(持续时间标准分钟(10)) .每(时长.标准分钟(1)); //从每个输入中提取密钥,并对每个组运行一个函数。 // //Q:ExtractKey()取决于窗口触发时间。 //如何将windowedInputs的时间戳传递给ExtractKey()? PCollection groupedIn

我使用的是一个X大小和Y周期的滑动时间窗口。为了标记每个窗口的输出,我想获取PCollection当前窗口的时间戳

PCollection windowedInput=输入
.将(窗口)应用于(
滑动窗口(持续时间标准分钟(10))
.每(时长.标准分钟(1));
//从每个输入中提取密钥,并对每个组运行一个函数。
//
//Q:ExtractKey()取决于窗口触发时间。
//如何将windowedInputs的时间戳传递给ExtractKey()?
PCollection groupedInputs=窗口输入
.apply(ParDo.of(new ExtractKey()))
.apply(GroupByKey.create());
//运行故事集群并编写输出。
//
//Q:我还想在输出中添加一个窗口时间戳后缀。
//如何将时间戳传递(或获取)到SomeDoFn()?
PCollection results=groupedInputs.apply(ParDo.of(new SomeDoFn());

A
DoFn
允许通过
@ProcessElement
方法上的可选
BoundedWindow
参数访问当前元素的窗口:

class SomeDoFn extends DoFn<KV<K, Iterable<T>>, String> {
  @ProcessElement
  public void process(ProcessContext c, BoundedWindow window) {
    ...
  }
}
类SomeDoFn扩展了DoFn{
@过程元素
公共作废进程(ProcessContext c,BoundedWindow){
...
}
}

A
DoFn
允许通过
@ProcessElement
方法上的可选
BoundedWindow
参数访问当前元素的窗口:

class SomeDoFn extends DoFn<KV<K, Iterable<T>>, String> {
  @ProcessElement
  public void process(ProcessContext c, BoundedWindow window) {
    ...
  }
}
类SomeDoFn扩展了DoFn{
@过程元素
公共作废进程(ProcessContext c,BoundedWindow){
...
}
}

谢谢你的建议。我试试看。在代码段中,是否有类似的方法向ExtractKey()提供窗口信息?当然,只需将BoundedWindow参数添加到ExtractKey的ProcessElement方法中即可。谢谢您的建议。我试试看。在代码段中,是否有类似的方法向ExtractKey()提供窗口信息?当然,只需将BoundedWindow参数添加到ExtractKey的ProcessElement方法中即可。