Hive - Opérateurs intégrés

Ce chapitre explique les opérateurs intégrés de Hive. Il existe quatre types d'opérateurs dans Hive:

  • Opérateurs relationnels
  • Opérateurs arithmétiques
  • Opérateurs logiques
  • Opérateurs complexes

Opérateurs relationnels

Ces opérateurs permettent de comparer deux opérandes. Le tableau suivant décrit les opérateurs relationnels disponibles dans Hive:

Opérateur Opérande La description
A = B tous les types primitifs TRUE si l'expression A est équivalente à l'expression B sinon FALSE.
A! = B tous les types primitifs TRUE si l'expression A n'est pas équivalente à l'expression B sinon FALSE.
A <B tous les types primitifs TRUE si l'expression A est inférieure à l'expression B sinon FALSE.
A <= B tous les types primitifs TRUE si l'expression A est inférieure ou égale à l'expression B sinon FALSE.
A> B tous les types primitifs TRUE si l'expression A est supérieure à l'expression B sinon FALSE.
A> = B tous les types primitifs TRUE si l'expression A est supérieure ou égale à l'expression B sinon FALSE.
A EST NULL tous les types TRUE si l'expression A est évaluée à NULL sinon FALSE.
A N'EST PAS NULL tous les types FALSE si l'expression A est évaluée à NULL sinon TRUE.
A COMME B Cordes TRUE si le modèle de chaîne A correspond à B sinon FALSE.
A RLIKE B Cordes NULL si A ou B est NULL, TRUE si une sous-chaîne de A correspond à l'expression régulière Java B, sinon FALSE.
UN REGEXP B Cordes Identique à RLIKE.

Exemple

Supposons que le employeeLa table est composée de champs nommés Id, Nom, Salaire, Désignation et Département comme indiqué ci-dessous. Générez une requête pour récupérer les détails de l'employé dont l'ID est 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|
+-----+--------------+--------+---------------------------+------+

La requête suivante est exécutée pour récupérer les détails de l'employé à l'aide du tableau ci-dessus:

hive> SELECT * FROM employee WHERE Id=1205;

Lors de l'exécution réussie de la requête, vous obtenez la réponse suivante:

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

La requête suivante est exécutée pour récupérer les détails de l'employé dont le salaire est supérieur ou égal à Rs 40000.

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

Lors de l'exécution réussie de la requête, vous obtenez la réponse suivante:

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

Opérateurs arithmétiques

Ces opérateurs prennent en charge diverses opérations arithmétiques courantes sur les opérandes. Tous renvoient des types de nombres. Le tableau suivant décrit les opérateurs arithmétiques disponibles dans Hive:

Les opérateurs Opérande La description
A + B tous les types de nombres Donne le résultat de l'ajout de A et B.
UN B tous les types de nombres Donne le résultat de la soustraction de B de A.
UN B tous les types de nombres Donne le résultat de la multiplication de A et B.
UN B tous les types de nombres Donne le résultat de la division de B de A.
UN B tous les types de nombres Donne le rappel résultant de la division de A par B.
UN B tous les types de nombres Donne le résultat du ET au niveau du bit de A et B.
A | B tous les types de nombres Donne le résultat du OU au niveau du bit de A et B.
A ^ B tous les types de nombres Donne le résultat du XOR bit à bit de A et B.
~ A tous les types de nombres Donne le résultat de PAS au niveau du bit de A.

Exemple

La requête suivante ajoute deux nombres, 20 et 30.

hive> SELECT 20+30 ADD FROM temp;

Lors de l'exécution réussie de la requête, vous obtenez la réponse suivante:

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

Opérateurs logiques

Les opérateurs sont des expressions logiques. Tous renvoient VRAI ou FAUX.

Les opérateurs Opérandes La description
A ET B booléen TRUE si A et B sont tous les deux VRAI, sinon FAUX.
UN B booléen Identique à A ET B.
A OU B booléen TRUE si A ou B ou les deux sont TRUE, sinon FALSE.
A || B booléen Identique à A OU B.
PAS UN booléen TRUE si A est FALSE, sinon FALSE.
!UNE booléen Identique à NOT A.

Exemple

La requête suivante est utilisée pour récupérer les détails des employés dont le département est TP et le salaire est supérieur à Rs 40000.

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

Lors de l'exécution réussie de la requête, vous obtenez la réponse suivante:

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

Opérateurs complexes

Ces opérateurs fournissent une expression pour accéder aux éléments des types complexes.

Opérateur Opérande La description
Un] A est un tableau et n est un int Il renvoie le nième élément du tableau A. Le premier élément a l'index 0.
M [clé] M est une carte <K, V> et la clé est de type K Il renvoie la valeur correspondant à la clé dans la carte.
Sx S est une structure Il renvoie le champ x de S.