Свинья на латыни - Основы

Pig Latin - это язык, используемый для анализа данных в Hadoop с помощью Apache Pig. В этой главе мы собираемся обсудить основы Pig Latin, такие как операторы Pig Latin, типы данных, общие и реляционные операторы, а также UDF Pig Latin.

Свинья на латыни - Модель данных

Как обсуждалось в предыдущих главах, модель данных Pig полностью вложена. АRelationявляется самой внешней структурой модели данных Pig Latin. И этоbag где -

  • Сумка - это набор кортежей.
  • Кортеж - это упорядоченный набор полей.
  • Поле - это часть данных.

Свинья на латыни - Statemets

При обработке данных с использованием Pig Latin, statements являются основными конструкциями.

  • Эти утверждения работают с relations. Они включаютexpressions а также schemas.

  • Каждый оператор заканчивается точкой с запятой (;).

  • Мы будем выполнять различные операции с помощью операторов, предоставляемых Pig Latin, через операторы.

  • За исключением LOAD и STORE, при выполнении всех других операций операторы Pig Latin принимают отношение в качестве входных данных и создают другое отношение в качестве выходных.

  • Как только вы войдете в Loadв оболочке Grunt, будет проведена его семантическая проверка. Чтобы увидеть содержимое схемы, вам нужно использоватьDumpоператор. Только после выполнения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.

SN Тип данных Описание и пример
1 int

Представляет 32-разрядное целое число со знаком.

Example : 8

2 длинный

Представляет 64-разрядное целое число со знаком.

Example : 5л

3 плавать

Представляет 32-битную плавающую точку со знаком.

Example : 5.5F

4 двойной

Представляет 64-битную плавающую точку.

Example : 10,5

5 Chararray

Представляет массив символов (строку) в формате Unicode UTF-8.

Example : 'точка обучения'

6 Bytearray

Представляет байтовый массив (большой двоичный объект).

7 Булево

Представляет логическое значение.

Example : истина / ложь.

8 Дата и время

Представляет дату и время.

Example : 1970-01-01T00: 00: 00.000 + 00: 00

9 Biginteger

Представляет Java BigInteger.

Example : 60708090709

10 Bigdecimal

Представляет Java BigDecimal

Example : 185.98376256272893883

Сложные типы
11 Кортеж

Кортеж - это упорядоченный набор полей.

Example : (раджа, 30)

12 Мешок

Сумка - это набор кортежей.

Example : {(раджу, 30), (Моххаммад, 45)}

13 карта

Карта - это набор пар ключ-значение.

Example : ['name' # 'Raju', 'age' # 30]

Нулевые значения

Значения для всех вышеуказанных типов данных могут быть NULL. Apache Pig обрабатывает нулевые значения так же, как SQL.

Нулевое значение может быть неизвестным или несуществующим значением. Он используется в качестве заполнителя для необязательных значений. Эти нули могут возникать естественным образом или могут быть результатом операции.

Свинья на латыни - арифметические операторы

В следующей таблице описаны арифметические операторы Pig Latin. Предположим, что a = 10 и b = 20.

Оператор Описание пример
+

Addition - Добавляет значения по обе стороны от оператора

a + b даст 30
-

Subtraction - Вычитает правый операнд из левого операнда

a - b даст −10
*

Multiplication - Умножает значения по обе стороны от оператора

a * b даст 200
/

Division - Делит левый операнд на правый операнд

б / у даст 2
%

Modulus - Делит левый операнд на правый операнд и возвращает остаток

b% a даст 0
? :

Bincond- Оценивает логические операторы. Он имеет три операнда, как показано ниже.

переменная x = (выражение)? value1 если правда :value2 если ложь .

б = (а == 1)? 20:30;

если a = 1, значение b равно 20.

если a! = 1, значение b равно 30.

КЕЙС

КОГДА

ТОГДА

ELSE END

Case - Оператор case эквивалентен вложенному оператору bincond.

ДЕЛО f2% 2

КОГДА 0 ТО 'даже'

КОГДА 1 ТО 'нечетный'

КОНЕЦ

Свинья на латыни - Операторы сравнения

В следующей таблице описаны операторы сравнения Pig Latin.

Оператор Описание пример
==

Equal- Проверяет, равны ли значения двух операндов; если да, то условие выполняется.

(a = b) неверно
знак равно

Not Equal- Проверяет, равны ли значения двух операндов. Если значения не равны, то условие становится истинным.

(a! = b) верно.
>

Greater than- Проверяет, больше ли значение левого операнда, чем значение правого операнда. Если да, то условие выполняется.

(a> b) неверно.
<

Less than- Проверяет, меньше ли значение левого операнда, чем значение правого операнда. Если да, то условие выполняется.

(a <b) верно.
> =

Greater than or equal to- Проверяет, больше ли значение левого операнда или равно значению правого операнда. Если да, то условие выполняется.

(a> = b) неверно.
<=

Less than or equal to- Проверяет, меньше ли значение левого операнда или равно значению правого операнда. Если да, то условие выполняется.

(a <= b) верно.
совпадения

Pattern matching - Проверяет, совпадает ли строка в левой части с константой в правой части.

f1 соответствует '. * tutorial. *'

Свинья на латыни - Операторы-конструкторы

В следующей таблице описаны операторы построения типов в Pig Latin.

Оператор Описание пример
()

Tuple constructor operator - Этот оператор используется для создания кортежа.

(Раджу, 30)
{}

Bag constructor operator - Этот оператор используется для создания сумки.

{(Раджу, 30), (Мохаммад, 45)}
[]

Map constructor operator - Этот оператор используется для создания кортежа.

[имя # Раджа, возраст # 30]

Свинья на латыни - Операции с отношениями

В следующей таблице описаны реляционные операторы Pig Latin.

Оператор Описание
Loading and Storing
ЗАГРУЗИТЬ Загрузить данные из файловой системы (локальной / HDFS) в отношение.
МАГАЗИН Сохранить отношение к файловой системе (локальная / HDFS).
Фильтрация
ФИЛЬТР Чтобы удалить ненужные строки из отношения.
ОТЛИЧИТЕЛЬНЫЙ Чтобы удалить повторяющиеся строки из отношения.
FOREACH, GENERATE Для создания преобразований данных на основе столбцов данных.
РУЧЕЙ Преобразовать отношение с помощью внешней программы.
Группировка и объединение
ПРИСОЕДИНИТЬСЯ Присоединиться к двум или более отношениям.
COGROUP Чтобы сгруппировать данные в два или более отношений.
ГРУППА Сгруппировать данные в одно отношение.
ПЕРЕСЕКАТЬ Чтобы создать перекрестное произведение двух или более отношений.
Сортировка
ЗАКАЗ To arrange a relation in a sorted order based on one or more fields (ascending or descending).
LIMIT To get a limited number of tuples from a relation.
Combining and Splitting
UNION To combine two or more relations into a single relation.
SPLIT To split a single relation into two or more relations.
Diagnostic Operators
DUMP To print the contents of a relation on the console.
DESCRIBE To describe the schema of a relation.
EXPLAIN To view the logical, physical, or MapReduce execution plans to compute a relation.
ILLUSTRATE To view the step-by-step execution of a series of statements.