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