Các toán tử tích hợp trong Hive (Built-in Operators)

Tram Ho

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

1. Relational Operators – 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:

Toán tửToán hạngMô tả
A = BTất cả các dạng nguyên thuỷTRUE nếu biểu thức A tương đương với biểu thức B nếu không thì FALSE.
A != BTất cả các dạng nguyên thuỷTRUE nếu biểu thức A không tương đương với biểu thức B nếu không thì FALSE.
A < BTất cả các dạng nguyên thuỷTRUE nếu biểu thức A nhỏ hơn biểu thức B nếu không thì FALSE.
A <= BTất cả các dạng nguyên thuỷTRUE nếu biểu thức A nhỏ hơn hoặc bằng biểu thức B nếu không thì FALSE.
A > BTất cả các dạng nguyên thuỷTRUE nếu biểu thức A lớn hơn biểu thức B nếu không thì FALSE.
A >= BTất cả các dạng nguyên thuỷ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 thì FALSE.
A IS NULLTất cả các dạngTRUE nếu biểu thức A ước lượng thành NULL nếu không thì FALSE.
A IS NOT NULLTất cả các dạngSAI nếu biểu thức A ước lượng thành NULL nếu không thì TRUE.
A LIKE BStringsTRUE nếu mẫu chuỗi A khớp với B nếu không thì FALSE.
A RLIKE BStringsNULL 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 BStringsGiống RLIKE

Ví dụ :
Ta giả định bảng employee bao gồm nhiều trường: Id, Name, Salary, Designation, Dept như sau. Tạo một query để lấy thông tin employee có Id = 1205.

Query sau đây được thực thi để lấy thông tin employee sử dụng bảng trên:

Thực thi thành công câu query ta sẽ có response sau:

Câu query sau thực thi để lấy thông tin employee có lương lớn hơn hoặc bằng Rs 4000.

Và response:

2. Arithmetic Operators – 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ả đều trả về các loại số. Bảng sau đây mô tả các toán tử số học có sẵn trong Hive:

Toán tửToán hạngMô tả
A + BTất cả dạng sốCho kết quả tổng A và B
A – BTất cả dạng sốCho kết quả hiệu A trừ B
A * BTất cả dạng sốCho kết quả phép nhân 2 số A, B
A / BTất cả dạng sốCho kết quả A chia cho B
A % BTất cả dạng sốCho kết quả A trừ B lấy phần dư
A & BTất cả dạng sốCho kết quả bit AND của A và B
ABTất cả dạng số
A ^ BTất cả dạng sốCho kết quả bit XOR của A và B
~ATất cả dạng sốCho kết quả bit NOT của A

Example:
Truy vấn sau tính tổng 2 số: 20 và 30:

Response khi thực thi thành công :

3. Logical Operators – Toán tử logic

Các toán tử là biểu thức logic. Tất cả đều trả về TRUE hoặc FALSE.

Toán tửToán hạngMô tả
A AND BbooleanTRUE nếu cả A và B đều TRUE, nếu khác thì FALSE
A && BbooleanNhư A AND B
A OR BbooleanTRUE nếu có một trong 2 hoặc cả A và B đều TRUE, khác thì trả về FALSE
AB
NOT AbooleanTrả về TRUE nếu A là FALSE, và nếu khác thì trả về FALSE
!AbooleanNhư NOT A

Example:

Query sau đây lấy thông tin employee có Deparment là TP và Salary lớn hơn Rs 40000.

Thực thi thành công sẽ ra kết quả:

4. Complex Operators – Toán tử phức hợ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 Complex Types.

Toán tửToán hạngMô tả
A[n]A là một Array và n là một intTrả về phần tử thứ n của mảng A. Phần tử đầu tiên có index = 0
M[key]M là một Map<K,V> và key có dạng KTrả về giá trị tương ứng với key trong map
S.xS là structTrả về trường x của S
Chia sẻ bài viết ngay

Nguồn bài viết : Viblo