Hive - Chức năng tích hợp
Chương này giải thích các chức năng tích hợp sẵn có trong Hive. Các hàm trông khá giống với các hàm SQL, ngoại trừ cách sử dụng.
Chức năng tích hợp sẵn
Hive hỗ trợ các chức năng tích hợp sau:
Loại trả lại | Chữ ký | Sự miêu tả |
---|---|---|
BIGINT | vòng (gấp đôi a) | Nó trả về giá trị BIGINT được làm tròn của đôi. |
BIGINT | tầng (đôi a) | Nó trả về giá trị BIGINT tối đa bằng hoặc nhỏ hơn giá trị gấp đôi. |
BIGINT | ceil (gấp đôi a) | Nó trả về giá trị BIGINT tối thiểu bằng hoặc lớn hơn giá trị gấp đôi. |
gấp đôi | rand (), rand (int seed) | Nó trả về một số ngẫu nhiên thay đổi từ hàng này sang hàng khác. |
chuỗi | concat (chuỗi A, chuỗi B, ...) | Nó trả về chuỗi kết quả từ việc nối B sau A. |
chuỗi | substr (chuỗi A, int start) | Nó trả về chuỗi con của A bắt đầu từ vị trí bắt đầu cho đến cuối chuỗi A. |
chuỗi | substr (chuỗi A, int start, int length) | Nó trả về chuỗi con của A bắt đầu từ vị trí bắt đầu với độ dài đã cho. |
chuỗi | trên (chuỗi A) | Nó trả về chuỗi kết quả từ việc chuyển đổi tất cả các ký tự của A thành chữ hoa. |
chuỗi | ucase (chuỗi A) | Giống như trên. |
chuỗi | thấp hơn (chuỗi A) | Nó trả về chuỗi kết quả từ việc chuyển đổi tất cả các ký tự của B thành chữ thường. |
chuỗi | lcase (chuỗi A) | Giống như trên. |
chuỗi | trim (chuỗi A) | Nó trả về chuỗi kết quả từ việc cắt bớt khoảng trắng từ cả hai đầu A. |
chuỗi | ltrim (chuỗi A) | Nó trả về chuỗi kết quả từ việc cắt bớt khoảng trắng từ đầu (phía bên trái) của A. |
chuỗi | rtrim (chuỗi A) | rtrim (chuỗi A) Nó trả về chuỗi kết quả từ việc cắt bớt khoảng trắng từ cuối (phía bên tay phải) của A. |
chuỗi | regexp_replace (chuỗi A, chuỗi B, chuỗi C) | Nó trả về chuỗi kết quả từ việc thay thế tất cả các chuỗi con trong B khớp với cú pháp của biểu thức chính quy Java với C. |
int | kích thước (Bản đồ <KV>) | Nó trả về số phần tử trong loại bản đồ. |
int | kích thước (Mảng <T>) | Nó trả về số phần tử trong kiểu mảng. |
giá trị của <type> | ép kiểu (<expr> as <type>) | Nó chuyển đổi kết quả của biểu thức expr thành <type>, ví dụ như ép kiểu ('1' dưới dạng BIGINT) chuyển chuỗi '1' thành biểu diễn tích phân. NULL được trả về nếu quá trình chuyển đổi không thành công. |
chuỗi | from_unixtime (int unixtime) | chuyển đổi số giây từ Unix epoch (1970-01-01 00:00:00 UTC) thành một chuỗi biểu thị dấu thời gian của thời điểm đó trong múi giờ hệ thống hiện tại ở định dạng "1970-01-01 00:00: 00 " |
chuỗi | to_date (dấu thời gian chuỗi) | Nó trả về phần ngày của chuỗi dấu thời gian: to_date ("1970-01-01 00:00:00") = "1970-01-01" |
int | năm (chuỗi ngày) | Nó trả về phần năm của ngày hoặc chuỗi dấu thời gian: year ("1970-01-01 00:00:00") = 1970, year ("1970-01-01") = 1970 |
int | tháng (chuỗi ngày) | Nó trả về phần tháng của ngày hoặc chuỗi dấu thời gian: month ("1970-11-01 00:00:00") = 11, month ("1970-11-01") = 11 |
int | ngày (chuỗi ngày) | Nó trả về phần ngày của ngày hoặc chuỗi dấu thời gian: day ("1970-11-01 00:00:00") = 1, day ("1970-11-01") = 1 |
chuỗi | get_json_object (chuỗi json_string, đường dẫn chuỗi) | Nó trích xuất đối tượng json từ một chuỗi json dựa trên đường dẫn json được chỉ định và trả về chuỗi json của đối tượng json được trích xuất. Nó trả về NULL nếu chuỗi json đầu vào không hợp lệ. |
Thí dụ
Các truy vấn sau đây minh họa một số chức năng tích hợp:
hàm round ()
hive> SELECT round(2.6) from temp;
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
3.0
chức năng tầng ()
hive> SELECT floor(2.6) from temp;
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
2.0
hàm ceil ()
hive> SELECT ceil(2.6) from temp;
Khi thực hiện thành công truy vấn, bạn sẽ thấy phản hồi sau:
3.0
Chức năng tổng hợp
Hive hỗ trợ tích hợp sau aggregate functions. Việc sử dụng các hàm này giống như các hàm tổng hợp trong SQL.
Loại trả lại | Chữ ký | Sự miêu tả |
---|---|---|
BIGINT | count (*), count (expr), | count (*) - Trả về tổng số hàng đã truy xuất. |
GẤP ĐÔI | sum (col), sum (DISTINCT col) | Nó trả về tổng các phần tử trong nhóm hoặc tổng các giá trị riêng biệt của cột trong nhóm. |
GẤP ĐÔI | trung bình (col), trung bình (DISTINCT col) | Nó trả về giá trị trung bình của các phần tử trong nhóm hoặc giá trị trung bình của các giá trị riêng biệt của cột trong nhóm. |
GẤP ĐÔI | min (col) | Nó trả về giá trị nhỏ nhất của cột trong nhóm. |
GẤP ĐÔI | max (col) | Nó trả về giá trị lớn nhất của cột trong nhóm. |