Hive - Yerleşik Operatörler
Bu bölüm, Hive'ın yerleşik operatörlerini açıklamaktadır. Hive'da dört tür operatör vardır:
- İlişkisel Operatörler
- Aritmetik operatörler
- Mantıksal operatörler
- Karmaşık Operatörler
İlişkisel Operatörler
Bu operatörler, iki operandı karşılaştırmak için kullanılır. Aşağıdaki tablo, Hive'da bulunan ilişkisel operatörleri açıklamaktadır:
Şebeke | Operand | Açıklama |
---|---|---|
A = B | tüm ilkel türler | A ifadesi, B ifadesine eşdeğerse, DOĞRU, aksi takdirde YANLIŞ. |
A! = B | tüm ilkel türler | A ifadesi B ifadesine eşdeğer değilse DOĞRU, aksi takdirde YANLIŞ. |
A <B | tüm ilkel türler | A ifadesi B ifadesinden küçükse DOĞRU, aksi takdirde YANLIŞ. |
A <= B | tüm ilkel türler | A ifadesi B ifadesinden küçükse veya ona eşitse DOĞRU, aksi takdirde YANLIŞ. |
A> B | tüm ilkel türler | A ifadesi B ifadesinden büyükse DOĞRU, aksi takdirde YANLIŞ. |
A> = B | tüm ilkel türler | A ifadesi B ifadesine eşit veya ondan büyükse DOĞRU, aksi takdirde YANLIŞ. |
A BOŞ | her türlü | A ifadesi NULL, aksi takdirde FALSE olarak değerlendirilirse TRUE. |
A BOŞ DEĞİL | her türlü | FALSE eğer ifade A NULL olarak değerlendirilirse, aksi takdirde TRUE olur. |
A GİBİ B | Teller | Dize modeli A, B ile eşleşiyorsa DOĞRU, aksi takdirde YANLIŞ. |
A RLIKE B | Teller | NULL, A veya B NULL ise, A'nın herhangi bir alt dizesi Java düzenli ifadesi B ile eşleşiyorsa DOĞRU, aksi takdirde YANLIŞ. |
Bir REGEXP B | Teller | RLIKE ile aynı. |
Misal
Varsayalım ki employeeTablo, aşağıda gösterildiği gibi Kimlik, İsim, Maaş, Görev ve Dept adlı alanlardan oluşmaktadır. Kimliği 1205 olan çalışan ayrıntılarını almak için bir sorgu oluşturun.
+-----+--------------+--------+---------------------------+------+
| 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|
+-----+--------------+--------+---------------------------+------+
Aşağıdaki sorgu, yukarıdaki tablo kullanılarak çalışan ayrıntılarını almak için yürütülür:
hive> SELECT * FROM employee WHERE Id=1205;
Sorgunun başarılı bir şekilde yürütülmesi üzerine aşağıdaki yanıtı görürsünüz:
+-----+-----------+-----------+----------------------------------+
| ID | Name | Salary | Designation | Dept |
+-----+---------------+-------+----------------------------------+
|1205 | Kranthi | 30000 | Op Admin | Admin |
+-----+-----------+-----------+----------------------------------+
Aşağıdaki sorgu, maaşı 40000 Rs'den fazla veya ona eşit olan çalışan ayrıntılarını almak için yürütülür.
hive> SELECT * FROM employee WHERE Salary>=40000;
Sorgunun başarılı bir şekilde yürütülmesi üzerine aşağıdaki yanıtı görürsünüz:
+-----+------------+--------+----------------------------+------+
| 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 |
+-----+------------+--------+----------------------------+------+
Aritmetik operatörler
Bu operatörler, işlenenler üzerinde çeşitli ortak aritmetik işlemleri destekler. Hepsi sayı türlerini döndürür. Aşağıdaki tablo, Hive'da bulunan aritmetik işleçleri açıklamaktadır:
Operatörler | Operand | Açıklama |
---|---|---|
A + B | tüm sayı türleri | A ve B'nin eklenmesinin sonucunu verir. |
A - B | tüm sayı türleri | B'yi A'dan çıkarmanın sonucunu verir. |
A * B | tüm sayı türleri | A ve B'yi çarpmanın sonucunu verir. |
A / B | tüm sayı türleri | B'yi A'dan bölmenin sonucunu verir. |
A% B | tüm sayı türleri | A'nın B'ye bölünmesinden kaynaklanan hatırlatıcıyı verir. |
A ve B | tüm sayı türleri | A ve B'nin bit düzeyinde AND sonucunu verir. |
A | B | tüm sayı türleri | A ve B'nin bitsel OR sonucunu verir. |
A ^ B | tüm sayı türleri | A ve B'nin bitsel XOR sonucunu verir. |
~ A | tüm sayı türleri | A'nın DEĞİL bitsel sonucunu verir. |
Misal
Aşağıdaki sorgu, 20 ve 30 olmak üzere iki sayı ekler.
hive> SELECT 20+30 ADD FROM temp;
Sorgunun başarıyla yürütülmesi üzerine aşağıdaki yanıtı görürsünüz:
+--------+
| ADD |
+--------+
| 50 |
+--------+
Mantıksal operatörler
Operatörler mantıksal ifadelerdir. Hepsi DOĞRU veya YANLIŞ döndürür.
Operatörler | Operandlar | Açıklama |
---|---|---|
A VE B | Boole | Hem A hem de B DOĞRU ise DOĞRU, aksi takdirde YANLIŞ. |
A && B | Boole | A VE B ile aynı. |
A VEYA B | Boole | A veya B veya her ikisi de DOĞRU ise DOĞRU, aksi takdirde YANLIŞ. |
A || B | Boole | A OR B ile aynı. |
A DEĞİL | Boole | A YANLIŞ ise DOĞRU, aksi takdirde YANLIŞ. |
! A | Boole | NOT A ile aynı. |
Misal
Aşağıdaki sorgu, Departmanı TP ve Maaş 40000 Rs'den fazla olan çalışan ayrıntılarını almak için kullanılır.
hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP;
Sorgunun başarıyla yürütülmesi üzerine aşağıdaki yanıtı görürsünüz:
+------+--------------+-------------+-------------------+--------+
| ID | Name | Salary | Designation | Dept |
+------+--------------+-------------+-------------------+--------+
|1201 | Gopal | 45000 | Technical manager | TP |
+------+--------------+-------------+-------------------+--------+
Karmaşık Operatörler
Bu operatörler, Karmaşık Tiplerin öğelerine erişmek için bir ifade sağlar.
Şebeke | Operand | Açıklama |
---|---|---|
A [n] | A bir Dizi ve n bir int | A dizisindeki n'inci elemanı döndürür. İlk elemanın indeksi 0'dır. |
M [anahtar] | M bir Harita <K, V> ve anahtar K tipidir | Haritadaki anahtara karşılık gelen değeri döndürür. |
Sx | S bir yapıdır | S'nin x alanını döndürür. |