Ответ @Ramesh правильный, но вам также может понадобиться хакерский способ использовать эту функцию без SQL-запросов:)
Хак в том, что функция callUDF вызывает не только UDF, но и любую доступную функцию.
Так что вы можете написать:
import org.apache.spark.sql._
import org.apache.spark.sql.functions._
b.withColumn("host", callUDF("parse_url", $"url_col", lit("HOST"))).
withColumn("query", callUDF("parse_url", $"url_col", lit("QUERY"))).
show(false)
Редактировать: после этот запрос на извлечение объединяется, вы можете просто использовать parse_url
как обычную функцию. PR сделал после этого вопроса:)