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