当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pyflink WindowedStream.aggregate用法及代码示例


本文简要介绍 python 语言中 pyflink.datastream.WindowedStream.aggregate 的用法。

用法:

aggregate(aggregate_function: pyflink.datastream.functions.AggregateFunction, window_function: Union[pyflink.datastream.functions.WindowFunction, pyflink.datastream.functions.ProcessWindowFunction] = None, accumulator_type: pyflink.common.typeinfo.TypeInformation = None, output_type: pyflink.common.typeinfo.TypeInformation = None) → pyflink.datastream.data_stream.DataStream

将给定的窗口函数应用于每个窗口。每次对每个键的窗口进行评估时,都会调用窗口函数。窗口函数的输出被解释为常规的非窗口流。

使用给定的聚合函数对到达的数据进行增量聚合。这意味着窗口函数在调用时通常只有一个值要处理。

例子:

>>> class AverageAggregate(AggregateFunction):
...     def create_accumulator(self) -> Tuple[int, int]:
...         return 0, 0
...
...     def add(self, value: Tuple[str, int], accumulator: Tuple[int, int]) \
...             -> Tuple[int, int]:
...         return accumulator[0] + value[1], accumulator[1] + 1
...
...     def get_result(self, accumulator: Tuple[int, int]) -> float:
...         return accumulator[0] / accumulator[1]
...
...     def merge(self, a: Tuple[int, int], b: Tuple[int, int]) -> Tuple[int, int]:
...         return a[0] + b[0], a[1] + b[1]
>>> ds.key_by(lambda x: x[1]) \
...     .window(TumblingEventTimeWindows.of(Time.seconds(5))) \
...     .aggregate(AverageAggregate(),
...                accumulator_type=Types.TUPLE([Types.LONG(), Types.LONG()]),
...                output_type=Types.DOUBLE())

参数:

  • aggregate_function- 用于增量聚合的聚合函数。

  • window_function- 窗口函数。

  • accumulator_type- 聚合函数的内部累加器类型的类型信息。

  • output_type- 窗口函数的结果类型的类型信息。

返回:

将窗口函数应用于窗口的结果的数据流。

版本 1.16.0 中的新函数。

相关用法


注:本文由纯净天空筛选整理自apache.org大神的英文原创作品 pyflink.datastream.WindowedStream.aggregate。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。