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