Я пытаюсь написать пользовательскую скалярную функцию во Flink, которая принимает несколько выражений (произвольное количество выражений) и объединяет их в одно выражение.
Исходя из мира Spark, я мог бы добиться этогоиспользуя struct
, который возвращает тип Row
и передает его в udf
, например
val structCol = SparkSql.functions.struct(cols: _*)
vecUdf(structCol)
Я не могу найти эквивалент во Flink.Я также пытаюсь выяснить, могу ли я написать ScalarFunction
, который принимает произвольное количество выражений, но не может найти никаких примеров.
Может ли кто-нибудь помочь мне сориентироваться в любом из двух вышеуказанных подходов?Спасибо!
Обратите внимание, я не могу сделать его массивом, так как каждое выражение может быть разного типа (на самом деле, одного типа значения, но может быть массивом или скаляром).