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