Pig

Apache Pig — высокоуровневая вычислительная платформа для анализа больших наборов данных, развёртываемая поверх Apache Hadoop и использующая скриптовый язык Pig Latin, который компилируется в задания MapReduce либо в планы, исполняемые движками Apache Tez и Apache Spark[1]. Платформа абстрагирует низкоуровневые детали MapReduce-программирования, позволяя описывать сложные трансформации данных с помощью декларативно-процедурного синтаксиса, схожего по выразительности с SQL[2].

Общие сведения
Apache Pig
Тип Платформа обработки больших данных
Состояние Активно разрабатывается и обновляется

Функции

Apache Pig предоставляет разработчикам и аналитикам ряд возможностей, упрощающих подготовку и обработку данных в распределённых средах:

  • Язык Pig Latin. Процедурный, ориентированный на поток данных язык, в котором последовательность операторов описывает цепочку преобразований набора данных.
  • Гибкая работа с данными. Поддержка структурированных, полуструктурированных и неструктурированных форматов, работа поверх HDFS[1].
  • Богатые типы данных. Примитивы (int, long, float, double, bytearray, chararray) и сложные объекты — кортежи, мешки и карты.
  • Оптимизация выполнения. Движок Pig преобразует скрипт в цепочку MapReduce-задач (или план для Tez/Spark) и применяет оптимизации — устранение лишних сортировок, уплотнение пайплайна и др.
  • Расширяемость. Возможность подключения пользовательских функций (UDF) на Java, Python и других языках[1].
  • Сокращение объёма кода. Эквивалентная логика, требующая ~200 строк Java, нередко укладывается в десяток строк Pig Latin.
  • Интеграция с экосистемой Hadoop, включая HDFS, Apache Hive, Apache HBase, Tez и Spark[2].

Операторы Pig Latin Наиболее употребительные операторы: LOAD, STORE, FILTER, FOREACH, GROUP, JOIN, ORDER BY, DISTINCT, UNION, SPLIT, DUMP, DESCRIBE, EXPLAIN и ILLUSTRATE[3][4].[5] Модификатор FLATTEN, используемый внутри конструкции FOREACH … GENERATE для разворачивания вложенных сумок и кортежей, не считается самостоятельным оператором[6]. Режимы выполнения

  • Local mode — запуск в одной JVM на локальной файловой системе; подходит для разработки и небольших наборов данных[1][7].
  • MapReduce mode — стандартный режим для кластеров Hadoop: скрипт транслируется в MapReduce-джобы и выполняется распределённо[7][8].
  • Tez mode / Tez local — выполнение плана на движке Apache Tez, что уменьшает количество дисковых проходов и ускоряет обработку[7].
  • Spark mode — использование Apache Spark как исполнительного движка для in-memory-обработки.

Примеры использования

  • ETL-процессы. Комбинация операторов LOAD → FILTER → STORE позволяет извлечь данные, очистить их (например, age > 30) и сохранить результат в HDFS.
  • Анализ лог-файлов. Выражением MATCHES '.ERROR.' легко выделить записи об ошибках и подсчитать их число при помощи GROUP … COUNT()[9].
  • Объединение источников данных. Оператор JOIN customers BY id, orders BY customerid группирует информацию о клиентах и их заказах, поддерживая внутренние и внешние соединения.
  • Агрегации. Связка GROUP BY city → AVG() используется для расчёта, к примеру, среднего возраста сотрудников по городам[10].
  • Базовый анализ тональности. После токенизации твитов функцией TOKENIZE() и разворачивания слов через FLATTEN Pig объединяет их со словарём тональности и классифицирует сообщения как позитивные или негативные.

Примечания

  1. 1 2 3 4 Apache Pig: everything you need to know about the Hadoop programming language. datascientest.com. Дата обращения: 20 июня 2025.
  2. 1 2 Introduction to Apache Pig - GeeksforGeeks. geeksforgeeks.org. Дата обращения: 20 июня 2025.
  3. Apache Pig - Краткое руководство - CoderLessons.com. coderlessons.com. Дата обращения: 20 июня 2025.
  4. Hive vs Pig. На что мне столько ETL? / Хабр. habr.com. Дата обращения: 20 июня 2025.
  5. Spec-Zone.ru. spec-zone.ru. Дата обращения: 20 июня 2025.
  6. asp.net - INSERT stored procedure does not work? - Stack Overflow. Stack Overflow. Дата обращения: 20 июня 2025.
  7. 1 2 3 Getting Started. apache.org. Дата обращения: 20 июня 2025.
  8. Operators in Apache Pig: Part 1- Relational Operators - Edureka. edureka.co. Дата обращения: 20 июня 2025.
  9. Apache Pig Architecture: Features, Components & Uses. upgrad.com. Дата обращения: 20 июня 2025.
  10. Mastering Apache Pig for Big Data. numberanalytics.com. Дата обращения: 20 июня 2025.
© Правообладателем данного материала является АНО «Интернет-энциклопедия «РУВИКИ».
Использование данного материала на других сайтах возможно только с согласия АНО «Интернет-энциклопедия «РУВИКИ».