ไฮฟ์ - ตัวดำเนินการในตัว

บทนี้จะอธิบายถึงตัวดำเนินการในตัวของ Hive มีตัวดำเนินการสี่ประเภทใน Hive:

  • ตัวดำเนินการเชิงสัมพันธ์
  • ตัวดำเนินการเลขคณิต
  • ตัวดำเนินการทางตรรกะ
  • ตัวดำเนินการที่ซับซ้อน

ตัวดำเนินการเชิงสัมพันธ์

ตัวดำเนินการเหล่านี้ใช้เพื่อเปรียบเทียบตัวถูกดำเนินการสองตัว ตารางต่อไปนี้อธิบายตัวดำเนินการเชิงสัมพันธ์ที่มีอยู่ใน Hive:

ตัวดำเนินการ ตัวดำเนินการ คำอธิบาย
ก = ข ประเภทดั้งเดิมทั้งหมด TRUE ถ้านิพจน์ A เทียบเท่ากับนิพจน์ B หรือ FALSE
ก! = ข ประเภทดั้งเดิมทั้งหมด TRUE ถ้านิพจน์ A ไม่เทียบเท่ากับนิพจน์ B หรือ FALSE
ก <B ประเภทดั้งเดิมทั้งหมด TRUE ถ้านิพจน์ A น้อยกว่านิพจน์ B หรือเป็น FALSE
A <= B ประเภทดั้งเดิมทั้งหมด TRUE ถ้านิพจน์ A น้อยกว่าหรือเท่ากับนิพจน์ B หรือเป็น FALSE
ก> ข ประเภทดั้งเดิมทั้งหมด TRUE ถ้านิพจน์ A มากกว่านิพจน์ B หรือ FALSE
A> = B ประเภทดั้งเดิมทั้งหมด TRUE ถ้านิพจน์ A มากกว่าหรือเท่ากับนิพจน์ B หรือเป็น FALSE
เป็นโมฆะ ทุกประเภท TRUE ถ้านิพจน์ A ประเมินค่าเป็น NULL หรือ FALSE
ไม่เป็นโมฆะ ทุกประเภท FALSE ถ้านิพจน์ A ประเมินค่าเป็น NULL มิฉะนั้น TRUE
เหมือน B สตริง TRUE ถ้ารูปแบบสตริง A ตรงกับ B มิฉะนั้น FALSE
RLIKE B สตริง NULL ถ้า A หรือ B เป็น NULL TRUE หากสตริงย่อยของ A ตรงกับนิพจน์ทั่วไปของ Java B หรือเป็น FALSE
REGEXP B สตริง เหมือนกับ RLIKE

ตัวอย่าง

ให้เราถือว่า employeeตารางประกอบด้วยฟิลด์ที่ชื่อ Id, Name, Salary, Designation และ Dept ดังที่แสดงด้านล่าง สร้างแบบสอบถามเพื่อดึงรายละเอียดพนักงานที่มี Id คือ 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|
+-----+--------------+--------+---------------------------+------+

แบบสอบถามต่อไปนี้ดำเนินการเพื่อดึงรายละเอียดพนักงานโดยใช้ตารางด้านบน:

hive> SELECT * FROM employee WHERE Id=1205;

เมื่อดำเนินการค้นหาสำเร็จคุณจะเห็นคำตอบต่อไปนี้:

+-----+-----------+-----------+----------------------------------+
| ID  | Name      | Salary    | Designation              | Dept  |
+-----+---------------+-------+----------------------------------+
|1205 | Kranthi   | 30000     | Op Admin                 | Admin |
+-----+-----------+-----------+----------------------------------+

แบบสอบถามต่อไปนี้ดำเนินการเพื่อดึงรายละเอียดพนักงานที่มีเงินเดือนมากกว่าหรือเท่ากับ 40000 รูปี

hive> SELECT * FROM employee WHERE Salary>=40000;

เมื่อดำเนินการค้นหาสำเร็จคุณจะเห็นคำตอบต่อไปนี้:

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

ตัวดำเนินการเลขคณิต

ตัวดำเนินการเหล่านี้สนับสนุนการคำนวณทางคณิตศาสตร์ทั่วไปต่างๆบนตัวถูกดำเนินการ ทั้งหมดส่งคืนประเภทตัวเลข ตารางต่อไปนี้อธิบายตัวดำเนินการทางคณิตศาสตร์ที่มีอยู่ใน Hive:

ตัวดำเนินการ ตัวดำเนินการ คำอธิบาย
A + B ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์ของการเพิ่ม A และ B
ก - ข ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์ของการลบ B จาก A
ก * ข ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์ของการคูณ A และ B
ก / ข ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์ของการหาร B จาก A
ก% ข ประเภทตัวเลขทั้งหมด ให้การแจ้งเตือนที่เกิดจากการหาร A ด้วย B
A & B ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์ของบิต AND ของ A และ B
A | ข ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์เป็นบิตหรือหรือของ A และ B
ก ^ ข ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์ของ XOR ระดับบิตของ A และ B
~ ก ประเภทตัวเลขทั้งหมด ให้ผลลัพธ์ของบิตไม่เป็น A

ตัวอย่าง

ข้อความค้นหาต่อไปนี้จะเพิ่มตัวเลขสองตัวคือ 20 และ 30

hive> SELECT 20+30 ADD FROM temp;

เมื่อดำเนินการค้นหาสำเร็จคุณจะเห็นคำตอบต่อไปนี้:

+--------+
|   ADD  |
+--------+
|   50   |
+--------+

ตัวดำเนินการทางตรรกะ

ตัวดำเนินการคือนิพจน์ตรรกะ ทั้งหมดส่งคืน TRUE หรือ FALSE

ตัวดำเนินการ โอเปร่า คำอธิบาย
กและข บูลีน TRUE ถ้าทั้ง A และ B เป็นจริงมิฉะนั้น FALSE
เอแอนด์แอนด์บี บูลีน เช่นเดียวกับ A AND B
กหรือข บูลีน TRUE ถ้า A หรือ B หรือทั้งสองเป็น TRUE หรือ FALSE
A || ข บูลีน เช่นเดียวกับ A หรือ B
ไม่ใช่ บูลีน TRUE ถ้า A เป็น FALSE มิฉะนั้น FALSE
! ก บูลีน เหมือนกับ NOT A.

ตัวอย่าง

แบบสอบถามต่อไปนี้ใช้เพื่อดึงรายละเอียดพนักงานที่มีแผนก TP และเงินเดือนมากกว่า Rs 40000

hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP;

เมื่อดำเนินการค้นหาสำเร็จคุณจะเห็นคำตอบต่อไปนี้:

+------+--------------+-------------+-------------------+--------+
| ID   | Name         | Salary      | Designation       | Dept   |
+------+--------------+-------------+-------------------+--------+
|1201  | Gopal        | 45000       | Technical manager | TP     |
+------+--------------+-------------+-------------------+--------+

ตัวดำเนินการที่ซับซ้อน

ตัวดำเนินการเหล่านี้จัดเตรียมนิพจน์เพื่อเข้าถึงองค์ประกอบของประเภทที่ซับซ้อน

ตัวดำเนินการ ตัวดำเนินการ คำอธิบาย
ก [n] A คือ Array และ n คือ int มันส่งคืนองค์ประกอบที่ n ในอาร์เรย์ A องค์ประกอบแรกมีดัชนี 0
M [คีย์] M คือแผนที่ <K, V> และคีย์มีประเภท K จะส่งคืนค่าที่ตรงกับคีย์ในแผนที่
Sx S เป็นโครงสร้าง มันส่งคืนฟิลด์ x ของ S.