Свинья на латыни - Основы
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. |