Hive - Operadores integrados

Este capítulo explica los operadores integrados de Hive. Hay cuatro tipos de operadores en Hive:

  • Operadores relacionales
  • Operadores aritméticos
  • Operadores logicos
  • Operadores complejos

Operadores relacionales

Estos operadores se utilizan para comparar dos operandos. La siguiente tabla describe los operadores relacionales disponibles en Hive:

Operador Operando Descripción
A = B todos los tipos primitivos VERDADERO si la expresión A es equivalente a la expresión B, en caso contrario FALSO.
A! = B todos los tipos primitivos VERDADERO si la expresión A no es equivalente a la expresión B, en caso contrario, es FALSO.
A <B todos los tipos primitivos VERDADERO si la expresión A es menor que la expresión B; de lo contrario, es FALSO.
A <= B todos los tipos primitivos VERDADERO si la expresión A es menor o igual que la expresión B; de lo contrario, FALSO.
A> B todos los tipos primitivos VERDADERO si la expresión A es mayor que la expresión B, en caso contrario, es FALSO.
A> = B todos los tipos primitivos VERDADERO si la expresión A es mayor o igual que la expresión B; de lo contrario, es FALSO.
A ES NULO todos los tipos TRUE si la expresión A se evalúa como NULL; de lo contrario, es FALSE.
A NO ES NULO todos los tipos FALSE si la expresión A se evalúa como NULL en caso contrario, TRUE.
A COMO B Instrumentos de cuerda VERDADERO si el patrón de cadena A coincide con B, de lo contrario FALSO.
A RLIKE B Instrumentos de cuerda NULL si A o B es NULL, TRUE si alguna subcadena de A coincide con la expresión regular de Java B; de lo contrario, FALSE.
A REGEXP B Instrumentos de cuerda Igual que RLIKE.

Ejemplo

Asumamos el employeeLa tabla se compone de campos denominados Id, Nombre, Salario, Designación y Departamento, como se muestra a continuación. Genere una consulta para recuperar los detalles del empleado cuyo Id es 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|
+-----+--------------+--------+---------------------------+------+

Se ejecuta la siguiente consulta para recuperar los detalles del empleado usando la tabla anterior:

hive> SELECT * FROM employee WHERE Id=1205;

En la ejecución exitosa de la consulta, puede ver la siguiente respuesta:

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

La siguiente consulta se ejecuta para recuperar los detalles del empleado cuyo salario es mayor o igual a Rs 40000.

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

En la ejecución exitosa de la consulta, puede ver la siguiente respuesta:

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

Estos operadores admiten varias operaciones aritméticas comunes en los operandos. Todos devuelven tipos de números. La siguiente tabla describe los operadores aritméticos disponibles en Hive:

Operadores Operando Descripción
A + B todos los tipos de números Da el resultado de sumar A y B.
A - B todos los tipos de números Da el resultado de restar B de A.
A * B todos los tipos de números Da el resultado de multiplicar A y B.
A / B todos los tipos de números Da el resultado de dividir B de A.
A% B todos los tipos de números Da el recordatorio resultante de dividir A por B.
A y B todos los tipos de números Da el resultado de AND bit a bit de A y B.
A | segundo todos los tipos de números Da el resultado de OR bit a bit de A y B.
A ^ B todos los tipos de números Da el resultado de XOR bit a bit de A y B.
~ A todos los tipos de números Da el resultado de bit a bit NOT de A.

Ejemplo

La siguiente consulta agrega dos números, 20 y 30.

hive> SELECT 20+30 ADD FROM temp;

En la ejecución exitosa de la consulta, puede ver la siguiente respuesta:

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

Operadores logicos

Los operadores son expresiones lógicas. Todos devuelven VERDADERO o FALSO.

Operadores Operandos Descripción
A Y B booleano VERDADERO si tanto A como B son VERDADEROS, de lo contrario FALSO.
A && B booleano Igual que A y B.
A O B booleano VERDADERO si A o B o ambos son VERDADEROS, de lo contrario FALSO.
A || segundo booleano Igual que A O B.
NO UN booleano VERDADERO si A es FALSO, de lo contrario FALSO.
!UN booleano Igual que NO A.

Ejemplo

La siguiente consulta se utiliza para recuperar los detalles de los empleados cuyo departamento es TP y el salario es superior a 40000 rupias.

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

En la ejecución exitosa de la consulta, puede ver la siguiente respuesta:

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

Operadores complejos

Estos operadores proporcionan una expresión para acceder a los elementos de tipos complejos.

Operador Operando Descripción
Un] A es una matriz y n es un int Devuelve el n-ésimo elemento de la matriz A. El primer elemento tiene índice 0.
M [tecla] M es un mapa <K, V> y la clave tiene el tipo K Devuelve el valor correspondiente a la clave en el mapa.
Sx S es una estructura Devuelve el campo x de S.