需要帮助编写 Cassandra UDF 函数
Need help writing a Cassandra UDF function
需要帮助将 cassandra udf 写入 add/divide/multiply 两个变量。尝试了下面的代码,但它似乎不起作用。我也没有 java 方面的经验,所以我可能无法调试。对此表示感谢。
CREATE FUNCTION my_adder(val1 double,val2 double )
RETURNS double LANGUAGE java
BODY
return (val1 == null || val2 == null)?null:Double.valueOf( val1.doubleValue() + val2.doubleValue());
END BODY;
应使用 RETURNS NULL ON NULL INPUT
或 CALLED ON NULL INPUT
处理空输入,如记录 here。
所以在这种情况下
CREATE OR REPLACE FUNCTION my_adder(val1 double,val2 double )
RETURNS NULL ON NULL INPUT
RETURNS double LANGUAGE java AS 'return val1 + val2;';
正在测试:
create table mytable(
p int,
foo double,
bar double,
primary key (p));
insert into mytable (p, foo, bar)
values (0, 1.0, 2.0);
insert into mytable (p, foo, bar)
values (1, NULL, 2.0);
insert into mytable (p, foo, bar)
values (2, 1.0, NULL);
select p,my_adder(foo, bar) from mytable;
p | test.my_adder(foo, bar)
---+---------------------------------
1 | null
0 | 3
2 | null
需要帮助将 cassandra udf 写入 add/divide/multiply 两个变量。尝试了下面的代码,但它似乎不起作用。我也没有 java 方面的经验,所以我可能无法调试。对此表示感谢。
CREATE FUNCTION my_adder(val1 double,val2 double )
RETURNS double LANGUAGE java
BODY
return (val1 == null || val2 == null)?null:Double.valueOf( val1.doubleValue() + val2.doubleValue());
END BODY;
应使用 RETURNS NULL ON NULL INPUT
或 CALLED ON NULL INPUT
处理空输入,如记录 here。
所以在这种情况下
CREATE OR REPLACE FUNCTION my_adder(val1 double,val2 double )
RETURNS NULL ON NULL INPUT
RETURNS double LANGUAGE java AS 'return val1 + val2;';
正在测试:
create table mytable(
p int,
foo double,
bar double,
primary key (p));
insert into mytable (p, foo, bar)
values (0, 1.0, 2.0);
insert into mytable (p, foo, bar)
values (1, NULL, 2.0);
insert into mytable (p, foo, bar)
values (2, 1.0, NULL);
select p,my_adder(foo, bar) from mytable;
p | test.my_adder(foo, bar)
---+---------------------------------
1 | null
0 | 3
2 | null