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.