Advanced usage patterns of Scala UDF in PySpark

RU / День 3 / 17:15 / Зал 1

При использовании PySpark часто забывают о возможности использования UDF, написанных на Scala/Java. А ведь это отличный способ увеличить производительность вашего приложения.

К сожалению, в официальной документации приводится самый базовый вариант их применения, который имеет ряд ограничений и не раскрывает всех возможностей применения Scala/Java UDF в PySpark.

В этом докладе Андрей расскажет, как:

  • заставить PySpark автоматически выводить тип данных, возвращаемых в UDF;
  • создать pyspark.sql.Column на базе UDF вместо использования spark.sql(...);
  • использовать Singleton Pattern для сохранения данных между вызовами функций и работы с внешними источниками из UDF;
  • избежать повторного вызова UDF на одних и тех же данных;
  • настроить логирование с помощью встроенного log4j.