Учебники

Hive — встроенные операторы

В этой главе описываются встроенные операторы Hive. В Hive есть четыре типа операторов:

  • Операторы отношений
  • Арифметические Операторы
  • Логические Операторы
  • Комплексные операторы

Операторы отношений

Эти операторы используются для сравнения двух операндов. В следующей таблице описаны реляционные операторы, доступные в Hive:

оператор Операнд Описание
A = B все примитивные типы TRUE, если выражение A эквивалентно выражению B, иначе FALSE.
A! = B все примитивные типы TRUE, если выражение A не эквивалентно выражению B, иначе FALSE.
A <B все примитивные типы TRUE, если выражение A меньше, чем выражение B, иначе FALSE.
A <= B все примитивные типы TRUE, если выражение A меньше или равно выражению B, иначе FALSE.
A> B все примитивные типы TRUE, если выражение A больше, чем выражение B, иначе FALSE.
A> = B все примитивные типы TRUE, если выражение A больше или равно выражению B, иначе FALSE.
ЕСТЬ НУЛЬ все типы TRUE, если выражение A оценивается как NULL, иначе FALSE.
A НЕ НУЛЬ все типы FALSE, если выражение A оценивается как NULL, иначе TRUE.
Как Б Струны TRUE, если строковый шаблон A соответствует B, иначе FALSE.
A RLIKE B Струны NULL, если A или B — NULL, TRUE, если любая подстрока A соответствует регулярному выражению Java B, иначе FALSE.
РЕГЭКСП Б Струны Так же, как RLIKE.

пример

Предположим, что таблица сотрудника состоит из полей с именами Id, Name, Salary, Designation и Dept, как показано ниже. Создайте запрос для получения сведений о сотруднике, чей идентификатор равен 1205.

+-----+--------------+--------+---------------------------+------+
| Id  | Name         | Salary | Designation               | Dept |
+-----+--------------+------------------------------------+------+
|1201 | Gopal        | 45000  | Technical manager         | TP   |
|1202 | Manisha      | 45000  | Proofreader               | PR   |
|1203 | Masthanvali  | 40000  | Technical writer          | TP   |
|1204 | Krian        | 40000  | Hr Admin                  | HR   |
|1205 | Kranthi      | 30000  | Op Admin                  | Admin|
+-----+--------------+--------+---------------------------+------+

Следующий запрос выполняется для получения сведений о сотруднике с использованием приведенной выше таблицы:

hive> SELECT * FROM employee WHERE Id=1205;

При успешном выполнении запроса вы увидите следующий ответ:

+-----+-----------+-----------+----------------------------------+
| ID  | Name      | Salary    | Designation              | Dept  |
+-----+---------------+-------+----------------------------------+
|1205 | Kranthi   | 30000     | Op Admin                 | Admin |
+-----+-----------+-----------+----------------------------------+

Следующий запрос выполняется для получения сведений о сотруднике, чья зарплата больше или равна 40000 рупий.

hive> SELECT * FROM employee WHERE Salary>=40000;

При успешном выполнении запроса вы увидите следующий ответ:

+-----+------------+--------+----------------------------+------+
| ID  | Name       | Salary | Designation                | Dept |
+-----+------------+--------+----------------------------+------+
|1201 | Gopal      | 45000  | Technical manager          | TP   |
|1202 | Manisha    | 45000  | Proofreader                | PR   |
|1203 | Masthanvali| 40000  | Technical writer           | TP   |
|1204 | Krian      | 40000  | Hr Admin                   | HR   |
+-----+------------+--------+----------------------------+------+

Арифметические Операторы

Эти операторы поддерживают различные общие арифметические операции над операндами. Все они возвращают типы чисел. В следующей таблице описаны арифметические операторы, доступные в Hive:

операторы Операнд Описание
А + Б все типы номеров Дает результат добавления A и B.
A — B все типы номеров Дает результат вычитания B из A.
A * B все типы номеров Дает результат умножения A и B.
A / B все типы номеров Дает результат деления B на A.
% B все типы номеров Дает напоминание в результате деления А на Б.
A & B все типы номеров Дает результат побитового И А и Б.
A | В все типы номеров Дает результат побитового ИЛИ A и B.
A ^ B все типы номеров Дает результат побитового XOR для A и B.
~ A все типы номеров Дает результат побитового НЕ А

пример

Следующий запрос добавляет два числа, 20 и 30.

hive> SELECT 20+30 ADD FROM temp;

При успешном выполнении запроса вы увидите следующий ответ:

+--------+
|   ADD  |
+--------+
|   50   |
+--------+

Логические Операторы

Операторы являются логическими выражениями. Все они возвращают либо ИСТИНА, либо ЛОЖЬ.

операторы Операнды Описание
А И Б логический TRUE, если A и B TRUE, иначе FALSE.
A && B логический То же, что А и Б.
А ИЛИ Б логический TRUE, если либо A, либо B, либо оба имеют значение TRUE, иначе FALSE.
A || В логический То же, что А И Б.
НЕ А логический ИСТИНА, если А ЛОЖЬ, иначе ЛОЖЬ.
! логический То же, что НЕ А.

пример

Следующий запрос используется для получения сведений о сотрудниках, чей отдел TP и оклад более 40000 рупий.

hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP;

При успешном выполнении запроса вы увидите следующий ответ:

+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
+------+--------------+-------------+-------------------+--------+

Комплексные операторы

Эти операторы предоставляют выражение для доступа к элементам сложных типов.