https://databricks.com/blog/2017/10/30/introducing-vectorized-udfs-for-pyspark.html
В этом сообщении в блоге представлена функция UDF Pandas (a.k.a. Vectorized UDF) в следующем выпуске Apache Spark 2.3, которая значительно повышает производительность и удобство использования пользовательских функций (UDF) в Python.
За последние несколько лет Python стал языком по умолчанию для исследователей данных. Такие пакеты, как pandas, numpy, statsmodel и scikit-learn, получили широкое распространение и стали основными инструментами. В то же время Apache Spark фактически стал стандартом обработки больших данных. Чтобы дать ученым, работающим с данными, возможность использовать ценность больших данных, Spark добавил Python API в версии 0.7 с поддержкой пользовательских функций. Эти пользовательские функции работают по одной строке за раз и, таким образом, страдают от высоких затрат на сериализацию и вызовы. В результате многие конвейеры данных определяют пользовательские функции в Java и Scala, а затем вызывают их из Python.
Пользовательские функции Pandas, построенные на основе Apache Arrow, предоставляют вам лучшее из обоих миров - возможность полностью определять высокопроизводительные пользовательские функции с низкими издержками в Python.
В Spark 2.3 будут два типа пользовательских функций Pandas: скалярная и сгруппированная карта. Далее мы проиллюстрируем их использование с помощью четырех примеров программ: «Плюс одна», «Совокупная вероятность», «Среднее значение вычитания», «Линейная регрессия обычных наименьших квадратов».