将 UDF 方法作为参数传递给 KSQL 中的其他 UDF
Pass UDF method as parameter to other UDF in KSQL
我正在为 KSQL 引擎实现自定义库(使用 UDF),我想知道如何解决我遇到的问题之一。
我已经定义了几个 UDF,它们使用传递的参数和 return 一些输出来做一些事情。
现在,我需要将这些 UDF(它们的调用)传递给其他 UDF。
所以结构看起来像这样:
SELECT * FROM stream s WHERE UDF_1(UDF_11(s.param1, s.param2), UDF_12(s.param3, s.param4), ...) 发出变化;
是否可以定义以其他UDF为参数的UDF?如果是,我该如何实现?
如果没有,请分享您对我如何解决问题的想法。
提前感谢您的帮助。
我假设你问的是方法定义的参数应该是什么?
一个 UDF 会 return 一个单一的值,并且函数会由内而外计算,所以它们不是“将 UDF 作为参数”,只是 return 值,这通常是原始 java 类型
例如,如果您拆分一个字符串列,然后将其转换为一个 int,则必须看起来像 CAST(STRSPLIT(c, delim)[0] AS INT)
,其中转换运算符采用任何对象(此处为字符串),并且 returns 一个整数,可以进一步传递给更多的 UDF
我正在为 KSQL 引擎实现自定义库(使用 UDF),我想知道如何解决我遇到的问题之一。
我已经定义了几个 UDF,它们使用传递的参数和 return 一些输出来做一些事情。 现在,我需要将这些 UDF(它们的调用)传递给其他 UDF。 所以结构看起来像这样:
SELECT * FROM stream s WHERE UDF_1(UDF_11(s.param1, s.param2), UDF_12(s.param3, s.param4), ...) 发出变化;
是否可以定义以其他UDF为参数的UDF?如果是,我该如何实现? 如果没有,请分享您对我如何解决问题的想法。
提前感谢您的帮助。
我假设你问的是方法定义的参数应该是什么?
一个 UDF 会 return 一个单一的值,并且函数会由内而外计算,所以它们不是“将 UDF 作为参数”,只是 return 值,这通常是原始 java 类型
例如,如果您拆分一个字符串列,然后将其转换为一个 int,则必须看起来像 CAST(STRSPLIT(c, delim)[0] AS INT)
,其中转换运算符采用任何对象(此处为字符串),并且 returns 一个整数,可以进一步传递给更多的 UDF