首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WSO2 CEP自定义函数不作为聚合函数工作

WSO2 CEP自定义函数不作为聚合函数工作
EN

Stack Overflow用户
提问于 2014-10-09 08:49:41
回答 1查看 154关注 0票数 0

WSO2 CEP自定义函数不作为聚合函数工作,而是对每一行数据进行操作。

假设输入流中有value1和value2。

  • 主持人:A,值1:1,值2:10
  • 主持人:A,值1:2,值2:20
  • 主持人:A,值1:3,值2:30
  • 主持人:A,值1:4,值2:40
  • 主持人:A,值1:5,值2:50

现在我已经按主机完成了批处理和分组。并编写了一个自定义函数,找出了中值,并使用了内置函数和。

但是它所做的是,在分组后对所有5行应用SUM函数,但是自定义函数是逐行调用的。自定义函数类中的process方法被逐行调用。因此,SUM返回15,但我的中值函数将输出作为50,这是最后一个value2。

执行计划查询

代码语言:javascript
运行
复制
from inputStream#window.timeBatch(10 sec)
select value1 as value1, value2 as value2, sum(value1) as sumOfValue1, custom:median(value2) as medianOfValue2 group by host
insert into outputStream;

自定义函数Java片段

代码语言:javascript
运行
复制
/**
     * Method called when sending events to process
     *
     * @param obj
     * @return
     */
    @Override
    protected Object process(Object obj) {

我们不能有一个自定义聚合函数,或者如果定制函数应该只在逐行基础上执行?

EN

回答 1

Stack Overflow用户

发布于 2014-10-09 12:37:34

您可以通过编写自定义OutputAttributeAggregator而不是自定义函数来解决这个问题。OutputAttributeAggregator应该用于这样的场景,函数用于单个行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26274142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档