我需要使用 UDF 在 cassandra 中使用 nvl(oracle 替换空值函数)

I need nvl (the oracle replace null values function) in cassandra using UDF

我需要在使用 UDF 的 cassandra 中使用 nvl(oracle 替换空值函数)。 cassandra UDF 的新手,所以任何人都可以共享 cassandra 中 nvl 的 UDF 以替换表中的空值。

您可以使用类似于下面的内容:

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;';

default_val 的文字仅在 cassandra 3.8 及更高版本中可用。

如果您需要 return 常量值并且使用的 cassandra 版本低于 3.8,则使用类似的东西:

CREATE OR REPLACE FUNCTION custom_udf ( val1 double) 
CALLED ON NULL INPUT 
RETURNS double LANGUAGE java AS 
'return (val1 == null)
            ? 2.0
            : val1;';

要使用 UDF,您应该在 cassandra.yaml 中将 enable_user_defined_functions 设置为 true

虽然UDF只能在SELECT语句中使用。

注意: Cassandra 3.8 支持 UDF 中的文字值 CASSANDRA-10783

UDF in Cassandra

More on UDF