当前位置: 首页 > 知识库问答 >
问题:

在cassandra db中执行用户定义的聚合函数时获取ServerError:java.lang.AssertionError

萧秋月
2023-03-14

我在我的cassandra db中实现了用户定义的聚合函数average,如链接https://docs.datastax.com/en/dse/5.1/cql/cql/cql_using/usecreateuda.html所述

创建或替换对空输入调用的函数avgState(state Tuple ,val int)返回元组 语言Java为“if(val!=NULL){state.SetInt(0,state.GetInt(0)+1);state.SetLong(1,state.GetLong(1)+val.IntValue());}return state;”;

CREATE或REPLACE函数avgFinal(状态元组 )在NULL输入时调用,返回双语言Java值为'double r=0;如果(state.getInt(0)==0)返回NULL;r=state.getLong(1);R/=state.getInt(0);返回Double.ValueOf(r);‘;

如果不存在average(int)SFUNC avgState STYPE tuple FINALFUNC avgFinal INITCOND(0,0),则创建聚合;

当查询返回至少一行进行聚合时,用户定义的聚合函数average可以正常工作。但是当没有返回用于聚合的行时,查询输出错误serverError:java.lang.AssertionError

请求帮助。

我的cassandra db版本是[cqlsh 5.0.1 cassandra 3.10 CQL spec 3.4.4 Native protocol v4]

谢谢你,乔治

共有1个答案

逑和蔼
2023-03-14

我在以下链接中得到了答案:https://community.datastax.com/questions/9891/getting-servererror-javalangassertionerror-when-ex.html

 类似资料:
  • 我有一个数据帧如下,我试图得到最大(总和)的用户组名称。 下面是我用来为用户获取最大值(总和)的自定义项 当我运行udf时,它抛出了下面的错误 错误:无法执行用户定义的函数($anonfun$1:(数组)= 因为我需要在更大的数据集中实现这一点,所以如何以更好的方式实现这一点 预期的结果是

  • 我正在测试Cassandra中的UDF/UDA特性,看起来不错。但我在使用它时没有什么问题。 1) 在卡桑德拉。yaml,有人提到启用沙箱是为了避免邪恶代码,那么我们是否违反了规则,启用此支持(标志)会产生什么后果? 2)与在客户端读取数据和编写聚合逻辑相比,在Cassandra中使用UDF/UDA有什么优势? 3)此外,除了JAVA之外,是否有一种语言支持可用于编写UDF/UDA的nodejs、

  • 我知道如何在SparkSQL中编写UDF: 我可以做类似的事情来定义聚合函数吗?这是怎么做到的? 对于上下文,我想运行以下SQL查询: 它应该会返回类似于 我希望聚合函数告诉我,在由< code>span和< code>timestamp定义的组中,是否有任何< code>opticalReceivePower的值低于阈值。我需要把我的UDAF写得和我上面粘贴的UDF不同吗?

  • 问题内容: 我正在尝试在Oracle中编写一个自定义聚合函数,并将该函数与其他一些函数一起分组在一个包中。作为一个示例(为了模拟我遇到的问题),假设我的自定义聚合对数字进行求和看起来像: 如果我编写以下函数定义: 和相应的类型声明进行测试: 这个说法: 给出正确的结果70。但是,使用函数定义创建一个包: 并通过以下方式调用: 与爆炸 是否可以在包声明中嵌套自定义聚合函数? 问题答案: Oracle

  • 我试图编写< code>udaf来计算< code>percentile值。 我需要编写自定义函数,因为现有的火花函数,和使用舍入不同于我的需要。 我需要使用地板而不是中点舍入。我可以用<code>pyspark<code>编写它吗? 如果不是,如何在scala中实现这一点? 我需要使用以下方法计算:

  • 问题内容: 我有一个汇总函数,按(colA)进行分组。它从一组列(列B)中选择最大值,但我也想从同一行中的列(列C)中返回另一个值。但是,如果将3行分组,则从C列中选择第一个值,而不是最大值(MAX(colB))的列。 问题答案: 您将要使用一个子查询,该子查询将按每个子查询获取,然后将该值重新连接到表中,以返回与该子查询的值匹配的其余列: 参见带有演示的SQL Fiddle