Hive - Các toán tử tích hợp
Chương này giải thích các toán tử tích hợp của Hive. Có bốn loại toán tử trong Hive:
- Toán tử quan hệ
- Toán tử số học
- Toán tử logic
- Toán tử phức tạp
Toán tử quan hệ
Các toán tử này được sử dụng để so sánh hai toán hạng. Bảng sau đây mô tả các toán tử quan hệ có sẵn trong Hive:
Nhà điều hành | Toán hạng | Sự miêu tả |
---|---|---|
A = B | tất cả các loại nguyên thủy | TRUE nếu biểu thức A tương đương với biểu thức B nếu không FALSE. |
A! = B | tất cả các loại nguyên thủy | TRUE nếu biểu thức A không tương đương với biểu thức B, ngược lại là FALSE. |
A <B | tất cả các loại nguyên thủy | TRUE nếu biểu thức A nhỏ hơn biểu thức B nếu không FALSE. |
A <= B | tất cả các loại nguyên thủy | TRUE nếu biểu thức A nhỏ hơn hoặc bằng biểu thức B nếu không FALSE. |
A> B | tất cả các loại nguyên thủy | TRUE nếu biểu thức A lớn hơn biểu thức B nếu không FALSE. |
A> = B | tất cả các loại nguyên thủy | TRUE nếu biểu thức A lớn hơn hoặc bằng biểu thức B nếu không FALSE. |
A LÀ KHÔNG | các loại | TRUE nếu biểu thức A đánh giá là NULL, ngược lại là FALSE. |
A KHÔNG ĐẦY ĐỦ | các loại | FALSE nếu biểu thức A đánh giá là NULL, ngược lại là TRUE. |
A THÍCH B | Dây | TRUE nếu mẫu chuỗi A khớp với B, ngược lại là FALSE. |
A RLIKE B | Dây | NULL nếu A hoặc B là NULL, TRUE nếu bất kỳ chuỗi con nào của A khớp với biểu thức chính quy Java B, nếu không thì FALSE. |
A REGEXP B | Dây | Giống như RLIKE. |
Thí dụ
Hãy để chúng tôi giả sử employeebảng bao gồm các trường có tên Id, Tên, Mức lương, Chức vụ và Phòng ban như hình dưới đây. Tạo truy vấn để truy xuất chi tiết nhân viên có Id là 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|
+-----+--------------+--------+---------------------------+------+
Truy vấn sau được thực hiện để truy xuất thông tin chi tiết về nhân viên bằng bảng trên:
hive> SELECT * FROM employee WHERE Id=1205;
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
+-----+-----------+-----------+----------------------------------+
| ID | Name | Salary | Designation | Dept |
+-----+---------------+-------+----------------------------------+
|1205 | Kranthi | 30000 | Op Admin | Admin |
+-----+-----------+-----------+----------------------------------+
Truy vấn sau được thực hiện để truy xuất chi tiết nhân viên có mức lương cao hơn hoặc bằng 40000 Rs.
hive> SELECT * FROM employee WHERE Salary>=40000;
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
+-----+------------+--------+----------------------------+------+
| 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 |
+-----+------------+--------+----------------------------+------+
Toán tử số học
Các toán tử này hỗ trợ các phép toán số học phổ biến khác nhau trên các toán hạng. Tất cả chúng đều trả về các loại số. Bảng sau mô tả các toán tử số học có sẵn trong Hive:
Các nhà khai thác | Toán hạng | Sự miêu tả |
---|---|---|
A + B | tất cả các loại số | Cho kết quả của việc thêm A và B. |
A - B | tất cả các loại số | Cho kết quả của phép trừ B cho A. |
A * B | tất cả các loại số | Cho kết quả của phép nhân A và B. |
A / B | tất cả các loại số | Cho kết quả của phép chia B từ A. |
A% B | tất cả các loại số | Đưa ra lời nhắc do chia A cho B. |
A & B | tất cả các loại số | Cho kết quả của bitwise AND của A và B. |
A | B | tất cả các loại số | Cho kết quả OR bitwise của A và B. |
A ^ B | tất cả các loại số | Cho kết quả XOR theo từng bit của A và B. |
~ A | tất cả các loại số | Cung cấp kết quả của bitwise KHÔNG của A. |
Thí dụ
Truy vấn sau đây thêm hai số, 20 và 30.
hive> SELECT 20+30 ADD FROM temp;
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
+--------+
| ADD |
+--------+
| 50 |
+--------+
Toán tử logic
Các toán tử là các biểu thức logic. Tất cả chúng đều trả về TRUE hoặc FALSE.
Các nhà khai thác | Toán hạng | Sự miêu tả |
---|---|---|
A VÀ B | boolean | TRUE nếu cả A và B đều TRUE, ngược lại FALSE. |
A && B | boolean | Tương tự như A VÀ B. |
A HOẶC B | boolean | TRUE nếu A hoặc B hoặc cả hai là TRUE, nếu không FALSE. |
A || B | boolean | Giống như A HOẶC B. |
KHÔNG PHẢI | boolean | TRUE nếu A là FALSE, nếu không FALSE. |
! A | boolean | Giống như KHÔNG A. |
Thí dụ
Truy vấn sau được sử dụng để truy xuất thông tin chi tiết của nhân viên có Bộ phận là TP và Mức lương cao hơn 40000 Rs.
hive> SELECT * FROM employee WHERE Salary>40000 && Dept=TP;
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
+------+--------------+-------------+-------------------+--------+
| ID | Name | Salary | Designation | Dept |
+------+--------------+-------------+-------------------+--------+
|1201 | Gopal | 45000 | Technical manager | TP |
+------+--------------+-------------+-------------------+--------+
Toán tử phức tạp
Các toán tử này cung cấp một biểu thức để truy cập các phần tử của Loại phức hợp.
Nhà điều hành | Toán hạng | Sự miêu tả |
---|---|---|
A [n] | A là một mảng và n là một int | Nó trả về phần tử thứ n trong mảng A. Phần tử đầu tiên có chỉ số 0. |
M [phím] | M là một Bản đồ <K, V> và khóa có kiểu K | Nó trả về giá trị tương ứng với khóa trong bản đồ. |
Sx | S là một cấu trúc | Nó trả về trường x của S. |