Я написал запрос, который вызывает функцию UDF в некотором сценарии ios, и для значения rest он должен отдавать часть else. Но в соответствии с физическим планом он показывает, что запускает UDF для всех значений столбца, но затем фильтрует записи на основе моего условия «когда».
Пример запроса: Spark. sql ("select *, случай, когда col1 in ('1', '2'), затем callUDF (col1) else col2 end from table ")
Итак, если col1 находится в списке, то UDF должен быть вызван и вернуть значение, но в если это не так, то возвращает другое значение столбца.
Нет проблем, с которыми вы столкнетесь в обычном сценарии, но в случае, если ваш UDF требует некоторого набора значений, только тогда он терпит неудачу, поскольку он не ожидает других значений.
Есть ли другой обходной путь, пожалуйста, поделитесь своими мыслями.