Пользовательская функция (UDF) - это функция, предоставляемая пользователем программы или среды, в контексте, где обычно предполагается, что функции встроены в программу или среду. Хотя этот термин широко известен в таких компонентах Hadoop, как Hive и Pig, он также используется в других контекстах, таких как языки программирования и некоторые СУБД.

Из документов:

Вступление

Pig обеспечивает расширенную поддержку пользовательских функций (UDF) как способ указать пользовательскую обработку. В настоящее время UDF Pig могут быть реализованы на трех языках: Java, Python и JavaScript.

Наиболее обширная поддержка предоставляется для функций Java. Вы можете настроить все части обработки, включая загрузку / сохранение данных, преобразование столбцов и агрегирование. Функции Java также более эффективны, потому что они реализованы на том же языке, что и Pig, и потому, что поддерживаются дополнительные интерфейсы, такие как алгебраический интерфейс и интерфейс накопителя.

Ограниченная поддержка предоставляется для функций Python и JavaScript. Эти функции являются новыми, постоянно развивающимися дополнениями к системе. В настоящее время поддерживается только базовый интерфейс; функции загрузки / сохранения не поддерживаются. Кроме того, JavaScript предоставляется в качестве экспериментальной функции, поскольку он не прошел такое же количество тестов, как Java или Python. Обратите внимание, что во время выполнения Pig автоматически обнаруживает использование UDF сценария в сценарии Pig и автоматически отправляет соответствующий jar сценария, Jython или Rhino, на бэкэнд.