Hive - Operadores integrados

Este capítulo explica os operadores integrados do Hive. Existem quatro tipos de operadores no Hive:

  • Operadores Relacionais
  • Operadores aritméticos
  • Operadores lógicos
  • Operadores Complexos

Operadores Relacionais

Esses operadores são usados ​​para comparar dois operandos. A tabela a seguir descreve os operadores relacionais disponíveis no Hive:

Operador Operando Descrição
A = B todos os tipos primitivos TRUE se a expressão A for equivalente à expressão B, caso contrário, FALSE.
A! = B todos os tipos primitivos TRUE se a expressão A não for equivalente à expressão B, caso contrário, FALSE.
A <B todos os tipos primitivos TRUE se a expressão A for menor que a expressão B, caso contrário, FALSE.
A <= B todos os tipos primitivos TRUE se a expressão A for menor ou igual à expressão B, caso contrário FALSE.
A> B todos os tipos primitivos TRUE se a expressão A for maior que a expressão B, caso contrário, FALSE.
A> = B todos os tipos primitivos TRUE se a expressão A for maior ou igual à expressão B, caso contrário, FALSE.
A IS NULL todos os tipos TRUE se a expressão A for avaliada como NULL, caso contrário, FALSE.
A NÃO É NULO todos os tipos FALSE se a expressão A for avaliada como NULL, caso contrário, TRUE.
A LIKE B Cordas TRUE se o padrão de string A corresponder a B, caso contrário, FALSE.
A RLIKE B Cordas NULL se A ou B for NULL, TRUE se qualquer substring de A corresponder à expressão regular Java B, caso contrário, FALSE.
A REGEXP B Cordas O mesmo que RLIKE.

Exemplo

Vamos assumir o employeeA tabela é composta de campos chamados Id, Nome, Salário, Designação e Departamento, conforme mostrado abaixo. Gere uma consulta para recuperar os detalhes do funcionário cujo ID é 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|
+-----+--------------+--------+---------------------------+------+

A seguinte consulta é executada para recuperar os detalhes do funcionário usando a tabela acima:

hive> SELECT * FROM employee WHERE Id=1205;

Na execução bem-sucedida da consulta, você verá a seguinte resposta:

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

A consulta a seguir é executada para recuperar os detalhes do funcionário cujo salário é maior ou igual a Rs 40.000.

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

Na execução bem-sucedida da consulta, você verá a seguinte resposta:

+-----+------------+--------+----------------------------+------+
| 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   |
+-----+------------+--------+----------------------------+------+

Operadores aritméticos

Esses operadores suportam várias operações aritméticas comuns nos operandos. Todos eles retornam tipos de números. A tabela a seguir descreve os operadores aritméticos disponíveis no Hive:

Operadores Operando Descrição
A + B todos os tipos de números Dá o resultado da adição de A e B.
A - B todos os tipos de números Fornece o resultado da subtração de B de A.
A * B todos os tipos de números Dá o resultado da multiplicação de A e B.
A / B todos os tipos de números Dá o resultado da divisão de B de A.
A% B todos os tipos de números Dá o lembrete resultante da divisão de A por B.
A e B todos os tipos de números Dá o resultado de AND bit a bit de A e B.
A | B todos os tipos de números Dá o resultado de OR bit a bit de A e B.
A ^ B todos os tipos de números Dá o resultado do XOR bit a bit de A e B.
~ A todos os tipos de números Dá o resultado de NÃO bit a bit de A.

Exemplo

A consulta a seguir adiciona dois números, 20 e 30.

hive> SELECT 20+30 ADD FROM temp;

Na execução bem-sucedida da consulta, você verá a seguinte resposta:

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

Operadores lógicos

Os operadores são expressões lógicas. Todos eles retornam VERDADEIRO ou FALSO.

Operadores Operandos Descrição
A AND B boleano TRUE se A e B forem TRUE, caso contrário, FALSE.
A && B boleano Igual a A AND B.
A OU B boleano TRUE se A ou B ou ambos forem TRUE, caso contrário, FALSE.
A || B boleano Igual a A OR B.
NÃO A boleano TRUE se A for FALSE, caso contrário FALSE.
!UMA boleano O mesmo que NÃO A.

Exemplo

A consulta a seguir é usada para recuperar os detalhes do funcionário cujo departamento é TP e o salário é superior a Rs 40.000.

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

Na execução bem-sucedida da consulta, você verá a seguinte resposta:

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

Operadores Complexos

Esses operadores fornecem uma expressão para acessar os elementos de Tipos complexos.

Operador Operando Descrição
A] A é um Array en é um int Ele retorna o enésimo elemento na matriz A. O primeiro elemento tem índice 0.
M [tecla] M é um Mapa <K, V> e a chave tem tipo K Ele retorna o valor correspondente à chave no mapa.
Sx S é uma estrutura Ele retorna o campo x de S.