Hive - wbudowani operatorzy
W tym rozdziale opisano wbudowane operatory Hive. W Hive istnieją cztery typy operatorów:
- Operatorzy relacyjni
 - Operatory arytmetyczne
 - Operatory logiczne
 - Złożone operatory
 
Operatorzy relacyjni
Te operatory służą do porównywania dwóch operandów. W poniższej tabeli opisano operatory relacji dostępne w gałęzi:
| Operator | Operand | Opis | 
|---|---|---|
| A = B. | wszystkie typy pierwotne | PRAWDA, jeśli wyrażenie A jest równoważne wyrażeniu B, w przeciwnym razie FAŁSZ. | 
| A! = B | wszystkie typy pierwotne | PRAWDA, jeśli wyrażenie A nie jest równoważne wyrażeniu B, w przeciwnym razie FAŁSZ. | 
| A <B | wszystkie typy pierwotne | PRAWDA, jeśli wyrażenie A jest mniejsze niż wyrażenie B, w przeciwnym razie FAŁSZ. | 
| A <= B | wszystkie typy pierwotne | PRAWDA, jeśli wyrażenie A jest mniejsze lub równe wyrażeniu B, w przeciwnym razie FAŁSZ. | 
| A> B | wszystkie typy pierwotne | PRAWDA, jeśli wyrażenie A jest większe niż wyrażenie B, w przeciwnym razie FAŁSZ. | 
| A> = B | wszystkie typy pierwotne | PRAWDA, jeśli wyrażenie A jest większe lub równe wyrażeniu B, w przeciwnym razie FAŁSZ. | 
| A IS NULL | wszystkie typy | PRAWDA, jeśli wyrażenie A ma wartość NULL, w przeciwnym razie FAŁSZ. | 
| NIE JEST NULL | wszystkie typy | FALSE, jeśli wyrażenie A ma wartość NULL, w przeciwnym razie PRAWDA. | 
| PODOBNE B | Smyczki | PRAWDA, jeśli wzorzec łańcucha A pasuje do B, w przeciwnym razie FAŁSZ. | 
| A RLIKE B | Smyczki | NULL, jeśli A lub B ma wartość NULL, TRUE, jeśli dowolny podciąg A pasuje do wyrażenia regularnego Java B, w przeciwnym razie FALSE. | 
| A REGEXP B. | Smyczki | To samo co RLIKE. | 
Przykład
Załóżmy, że employeetabela składa się z pól o nazwach Id, Imię i Nazwisko, Wynagrodzenie, Oznaczenie i Dział, jak pokazano poniżej. Wygeneruj zapytanie, aby pobrać dane pracownika, których identyfikator to 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|
+-----+--------------+--------+---------------------------+------+
Następujące zapytanie jest wykonywane w celu pobrania danych pracownika przy użyciu powyższej tabeli:
hive> SELECT * FROM employee WHERE Id=1205;
Po pomyślnym wykonaniu zapytania zobaczysz następującą odpowiedź:
+-----+-----------+-----------+----------------------------------+
| ID  | Name      | Salary    | Designation              | Dept  |
+-----+---------------+-------+----------------------------------+
|1205 | Kranthi   | 30000     | Op Admin                 | Admin |
+-----+-----------+-----------+----------------------------------+
Następujące zapytanie jest wykonywane w celu pobrania szczegółów pracownika, którego wynagrodzenie jest większe lub równe 40000 Rs.
hive> SELECT * FROM employee WHERE Salary>=40000;
Po pomyślnym wykonaniu zapytania zobaczysz następującą odpowiedź:
+-----+------------+--------+----------------------------+------+
| 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   |
+-----+------------+--------+----------------------------+------+
Operatory arytmetyczne
Te operatory obsługują różne typowe operacje arytmetyczne na operandach. Wszystkie zwracają typy liczbowe. W poniższej tabeli opisano operatory arytmetyczne dostępne w gałęzi:
| Operatorzy | Operand | Opis | 
|---|---|---|
| A + B | wszystkie typy liczb | Daje wynik dodania A i B. | 
| A - B | wszystkie typy liczb | Daje wynik odjęcia B od A. | 
| A * B | wszystkie typy liczb | Daje wynik pomnożenia A i B. | 
| A / B | wszystkie typy liczb | Daje wynik podzielenia B od A. | 
| A% B | wszystkie typy liczb | Daje przypomnienie wynikające z podzielenia A przez B. | 
| A i B. | wszystkie typy liczb | Daje wynik bitowego AND z A i B. | 
| A | b | wszystkie typy liczb | Daje wynik bitowego OR A i B. | 
| A ^ B | wszystkie typy liczb | Daje wynik bitowej XOR A i B. | 
| ~ A | wszystkie typy liczb | Daje wynik bitowego NIE A. | 
Przykład
Poniższe zapytanie dodaje dwie liczby, 20 i 30.
hive> SELECT 20+30 ADD FROM temp;
Po pomyślnym wykonaniu zapytania zobaczysz następującą odpowiedź:
+--------+
|   ADD  |
+--------+
|   50   |
+--------+
Operatory logiczne
Operatory są wyrażeniami logicznymi. Wszystkie zwracają PRAWDA lub FAŁSZ.
| Operatorzy | Operandy | Opis | 
|---|---|---|
| A AND B | boolean | PRAWDA, jeśli zarówno A, jak i B mają wartość PRAWDA, w przeciwnym razie FAŁSZ. | 
| A && B. | boolean | To samo co A AND B. | 
| A LUB B | boolean | PRAWDA, jeśli A lub B lub oba mają wartość PRAWDA, w przeciwnym razie FAŁSZ. | 
| A || b | boolean | To samo co A LUB B. | 
| ANI | boolean | PRAWDA, jeśli A jest FAŁSZEM, w przeciwnym razie FAŁSZ. | 
| !ZA | boolean | To samo, co NOT A. | 
Przykład
Poniższe zapytanie służy do pobierania danych pracowników, których działem jest TP, a wynagrodzenie przekracza 40000 Rs.
hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP;
Po pomyślnym wykonaniu zapytania zobaczysz następującą odpowiedź:
+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
+------+--------------+-------------+-------------------+--------+
Złożone operatory
Te operatory zapewniają wyrażenie umożliwiające dostęp do elementów typów złożonych.
| Operator | Operand | Opis | 
|---|---|---|
| Na] | A to Array, a n to int | Zwraca n-ty element tablicy A. Pierwszy element ma indeks 0. | 
| M [klucz] | M to Mapa <K, V>, a klucz ma typ K. | Zwraca wartość odpowiadającą kluczowi na mapie. | 
| Sx | S jest strukturą | Zwraca pole x S. |