Я зарегистрировал некоторые udf, у всех одинаковые типы входных параметров и одинаковый тип вывода (String). Допустим, udf1, udf2, udf3. Все они имеют разные функции.
В моем наборе данных у меня есть несколько столбцов, в одном столбце у меня есть имя файла udf, который я хочу выполнить в этой строке данных.
Пример набора данных:
+---+-------+-------+
|A | B |udf |
+---+-------+-------+
|1 | a |udf1 |
|2 | b |udf2 |
|3 | c |udf3 |
+---+-------+-------+
Я хочу сделать что-то вроде этого:
ds.withColumn("TEST", functions.callUDF(<name of right udf>, col("A"), col("B"))
Как мне этого добиться? Возможно ли это, а если нет, каков обходной путь?
Справочная информация: В моем задании Spark есть набор пользовательских функций, и я хочу динамически выполнить правильный udf для строки.