【问题标题】:Flink error on using RichAggregateFunction使用 RichAggregateFunction 时出现 Flink 错误
【发布时间】:2017-11-22 22:47:07
【问题描述】:

我正在尝试在 Flink 中使用抽象 RichAggregateFunction 的实现。我希望它“丰富”,因为我需要将一些状态存储为聚合器的一部分,而且我可以这样做,因为我可以访问运行时上下文。我的代码如下:

stream.keyBy(...)
   .window(GlobalWindows.create())
   .trigger(...)
   .aggregate(new MyRichAggregateFunction());

但是,我收到 UnsupportedOperationException 提示

此聚合函数不能是 RichFunction。

我显然没有正确使用 RichAggregateFunction。有没有如何正确使用它的例子?或者我应该使用 ProcessFunction 进行此类操作?

谢谢

【问题讨论】:

    标签: java apache-flink flink-streaming


    【解决方案1】:

    这不是你的错误。

    Flink 不支持在组窗口中扩展 RichAggregateFunction 的函数。

    【讨论】:

    • 感谢费边。您能否就 RichAggregateFunction 适用的用例提供一些指导?
    • 目前AggregateFunction只能在组窗口中使用,但是这可能会在未来的版本中改变。
    • 是否有任何其他选项可以像 RichFunctions 一样在窗口上实现具有状态变量的聚合?
    • 不,它仍然不受支持。我也不确定它是否会得到支持,因为它存在一些概念问题。
    猜你喜欢
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2021-06-18
    • 2014-05-30
    • 2019-05-17
    相关资源
    最近更新 更多