我需要使用UDF在cassandra中使用nvl(oracle替换空值函数)。 cassandra UDF的新手,所以任何人都可以在cassandra中为nvl共享UDF以替换表中的空值。
答案 0 :(得分:1)
您可以使用类似下面的内容:
CREATE OR REPLACE FUNCTION custom_nvl ( val1 double, default_val double )
CALLED ON NULL INPUT
RETURNS double LANGUAGE java AS
'return (val1 == null)
? default_val
: val1;';
只有cassandra 3.8及以上版本才可以 default_val
的文字。
如果您需要返回常量值并使用小于3.8的cassandra版本,请使用以下内容:
CREATE OR REPLACE FUNCTION custom_udf ( val1 double)
CALLED ON NULL INPUT
RETURNS double LANGUAGE java AS
'return (val1 == null)
? 2.0
: val1;';
要使用UDF
,您应在enable_user_defined_functions
中将true
设为cassandra.yaml
。
虽然UDF
只能在SELECT
语句中使用。
注意:来自cassandra 3.8 CASSANDRA-10783
支持UDF中的文字值