Pig Latin — это язык, используемый для анализа данных в Hadoop с использованием Apache Pig. В этой главе мы собираемся обсудить основы Pig Latin, такие как операторы Pig Latin, типы данных, общие и реляционные операторы и пользовательские функции Pig Latin.
Свинья латинская — модель данных
Как обсуждалось в предыдущих главах, модель данных Pig полностью вложена. Отношение является самой внешней структурой модели данных Pig Latin. И это сумка, где —
- Сумка — это коллекция кортежей.
- Кортеж — это упорядоченный набор полей.
- Поле — это часть данных.
Свинья латинская — Statemets
При обработке данных с использованием Pig Latin операторы являются основными конструкциями.
-
Эти заявления работают с отношениями . Они включают выражения и схемы .
-
Каждое утверждение заканчивается точкой с запятой (;).
-
Мы будем выполнять различные операции, используя операторы, предоставленные Pig Latin, через операторы.
-
За исключением LOAD и STORE, при выполнении всех других операций операторы Pig Latin принимают отношение в качестве входных данных и создают другое отношение в качестве выходных данных.
-
Как только вы введете оператор Load в оболочку Grunt, будет выполнена его семантическая проверка. Чтобы увидеть содержимое схемы, вам нужно использовать оператор Dump . Только после выполнения операции дампа будет выполнено задание MapReduce для загрузки данных в файловую систему.
Эти заявления работают с отношениями . Они включают выражения и схемы .
Каждое утверждение заканчивается точкой с запятой (;).
Мы будем выполнять различные операции, используя операторы, предоставленные Pig Latin, через операторы.
За исключением LOAD и STORE, при выполнении всех других операций операторы Pig Latin принимают отношение в качестве входных данных и создают другое отношение в качестве выходных данных.
Как только вы введете оператор Load в оболочку Grunt, будет выполнена его семантическая проверка. Чтобы увидеть содержимое схемы, вам нужно использовать оператор Dump . Только после выполнения операции дампа будет выполнено задание MapReduce для загрузки данных в файловую систему.
пример
Ниже приведен оператор Pig Latin, который загружает данные в Apache Pig.
grunt> Student_data = LOAD 'student_data.txt' USING PigStorage(',')as ( id:int, firstname:chararray, lastname:chararray, phone:chararray, city:chararray );
Pig Latin — Типы данных
Приведенная ниже таблица описывает типы данных Pig Latin.
SN | Тип данных | Описание и пример |
---|---|---|
1 | ИНТ |
Представляет 32-разрядное целое число со знаком. Пример : 8 |
2 | долго |
Представляет 64-разрядное целое число со знаком. Пример : 5л |
3 | поплавок |
Представляет 32-битную с плавающей запятой со знаком. Пример : 5.5F |
4 | двойной |
Представляет 64-битную плавающую точку. Пример : 10,5 |
5 | chararray |
Представляет массив символов (строку) в формате Unicode UTF-8. Пример : «точка обучения» |
6 | ByteArray, |
Представляет массив байтов (BLOB-объектов). |
7 | логический |
Представляет логическое значение. Пример : правда / ложь. |
8 | Datetime |
Представляет дату-время. Пример : 1970-01-01T00: 00: 00.000 + 00: 00 |
9 | BigInteger |
Представляет Java BigInteger. Пример : 60708090709 |
10 | BigDecimal |
Представляет Java BigDecimal Пример : 185,98376256272893883 |
Сложные типы | ||
11 | Кортеж |
Кортеж — это упорядоченный набор полей. Пример : (Раджа, 30) |
12 | Мешок |
Сумка — это коллекция кортежей. Пример : {(Раджу, 30), (Мухаммед, 45)} |
13 | карта |
Карта — это набор пар ключ-значение. Пример : [‘name’ # ‘Raju’, ‘age’ # 30] |
Представляет 32-разрядное целое число со знаком.
Пример : 8
Представляет 64-разрядное целое число со знаком.
Пример : 5л
Представляет 32-битную с плавающей запятой со знаком.
Пример : 5.5F
Представляет 64-битную плавающую точку.
Пример : 10,5
Представляет массив символов (строку) в формате Unicode UTF-8.
Пример : «точка обучения»
Представляет массив байтов (BLOB-объектов).
Представляет логическое значение.
Пример : правда / ложь.
Представляет дату-время.
Пример : 1970-01-01T00: 00: 00.000 + 00: 00
Представляет Java BigInteger.
Пример : 60708090709
Представляет Java BigDecimal
Пример : 185,98376256272893883
Кортеж — это упорядоченный набор полей.
Пример : (Раджа, 30)
Сумка — это коллекция кортежей.
Пример : {(Раджу, 30), (Мухаммед, 45)}
Карта — это набор пар ключ-значение.
Пример : [‘name’ # ‘Raju’, ‘age’ # 30]
Нулевые значения
Значения для всех вышеперечисленных типов данных могут быть NULL. Apache Pig обрабатывает нулевые значения таким же образом, как SQL.
Ноль может быть неизвестным значением или несуществующим значением. Он используется в качестве заполнителя для необязательных значений. Эти нули могут возникать естественным образом или быть результатом операции.
Pig Latin — Арифметические операторы
В следующей таблице описаны арифметические операторы Pig Latin. Предположим, что а = 10 и б = 20.
оператор | Описание | пример |
---|---|---|
+ |
Добавление — добавляет значения по обе стороны от оператора |
а + б даст 30 |
— |
Вычитание — вычитает правый операнд из левого операнда |
а — б даст -10 |
* |
Умножение — умножает значения по обе стороны от оператора |
а * б даст 200 |
/ |
Деление — делит левый операнд на правый операнд |
б / у даст 2 |
% |
Модуль — Делит левый операнд на правый операнд и возвращает остаток |
б% а даст 0 |
? : |
Bincond — оценивает логические операторы. У него есть три операнда, как показано ниже. переменная х = (выражение)? value1, если true : значение2, если false . |
б = (а == 1)? 20:30; если a = 1, значение b равно 20. если a! = 1, значение b равно 30. |
ДЕЛО КОГДА ЗАТЕМ ELSE END |
Case — Оператор case эквивалентен вложенному оператору bincond. |
ДЕЛО f2% 2 КОГДА 0 ТОГДА КОГДА 1 ТОГДА «ЧУДА» КОНЕЦ |
Добавление — добавляет значения по обе стороны от оператора
Вычитание — вычитает правый операнд из левого операнда
Умножение — умножает значения по обе стороны от оператора
Деление — делит левый операнд на правый операнд
Модуль — Делит левый операнд на правый операнд и возвращает остаток
Bincond — оценивает логические операторы. У него есть три операнда, как показано ниже.
переменная х = (выражение)? value1, если true : значение2, если false .
б = (а == 1)? 20:30;
если a = 1, значение b равно 20.
если a! = 1, значение b равно 30.
ДЕЛО
КОГДА
ЗАТЕМ
ELSE END
Case — Оператор case эквивалентен вложенному оператору bincond.
ДЕЛО f2% 2
КОГДА 0 ТОГДА
КОГДА 1 ТОГДА «ЧУДА»
КОНЕЦ
Pig Latin — Операторы сравнения
В следующей таблице описаны операторы сравнения Pig Latin.
оператор | Описание | пример |
---|---|---|
== |
Равно — Проверяет, равны ли значения двух операндов или нет; если да, то условие становится истинным. |
(а = б) не соответствует действительности |
знак равно |
Не равно — Проверяет, равны ли значения двух операндов или нет. Если значения не равны, то условие становится истинным. |
(a! = b) верно. |
> |
Больше чем — Проверяет, больше ли значение левого операнда, чем значение правого операнда. Если да, то условие становится истинным. |
(а> б) не соответствует действительности. |
< |
Меньше — Проверяет, меньше ли значение левого операнда, чем значение правого операнда. Если да, то условие становится истинным. |
(а <б) верно. |
> = |
Больше или равно — Проверяет, является ли значение левого операнда больше или равно значению правого операнда. Если да, то условие становится истинным. |
(a> = b) не соответствует действительности. |
<= |
Меньше или равно — Проверяет, является ли значение левого операнда меньше или равно значению правого операнда. Если да, то условие становится истинным. |
(a <= b) верно. |
Матчи |
Сопоставление с образцом — проверяет, совпадает ли строка в левой части с константой в правой части. |
f1 соответствует «. * tutorial. *» |
Равно — Проверяет, равны ли значения двух операндов или нет; если да, то условие становится истинным.
Не равно — Проверяет, равны ли значения двух операндов или нет. Если значения не равны, то условие становится истинным.
Больше чем — Проверяет, больше ли значение левого операнда, чем значение правого операнда. Если да, то условие становится истинным.
Меньше — Проверяет, меньше ли значение левого операнда, чем значение правого операнда. Если да, то условие становится истинным.
Больше или равно — Проверяет, является ли значение левого операнда больше или равно значению правого операнда. Если да, то условие становится истинным.
Меньше или равно — Проверяет, является ли значение левого операнда меньше или равно значению правого операнда. Если да, то условие становится истинным.
Сопоставление с образцом — проверяет, совпадает ли строка в левой части с константой в правой части.
Pig Latin — Тип строительных операторов
В следующей таблице описаны операторы конструирования типа Pig Latin.
оператор | Описание | пример |
---|---|---|
() |
Оператор конструктора кортежа — этот оператор используется для создания кортежа. |
(Раджу, 30) |
{} |
Оператор конструктора сумки — этот оператор используется для создания сумки. |
{(Раджу, 30), (Мухаммед, 45)} |
[] |
Оператор конструктора карты — этот оператор используется для создания кортежа. |
[имя # Раджа, возраст # 30] |
Оператор конструктора кортежа — этот оператор используется для создания кортежа.
Оператор конструктора сумки — этот оператор используется для создания сумки.
Оператор конструктора карты — этот оператор используется для создания кортежа.
Свинья Латинская — Реляционные Операции
Следующая таблица описывает реляционные операторы Pig Latin.