
- Hive 教程
- Hive - 首頁
- Hive - 簡介
- Hive - 安裝
- Hive - 資料型別
- Hive - 建立資料庫
- Hive - 刪除資料庫
- Hive - 建立表
- Hive - 修改表
- Hive - 刪除表
- Hive - 分割槽
- Hive - 內建運算子
- Hive - 內建函式
- Hive - 檢視和索引
- Hive 有用資源
- Hive - 常見問題解答
- Hive - 快速指南
- Hive - 有用資源
Hive 內建函式
本章解釋Hive中可用的內建函式。這些函式與SQL函式非常相似,但用法有所不同。
內建函式
Hive支援以下內建函式:
返回型別 | 簽名 | 描述 |
---|---|---|
BIGINT | round(double a) | 返回double值的四捨五入後的BIGINT值。 |
BIGINT | floor(double a) | 返回不大於double的最大BIGINT值。 |
BIGINT | ceil(double a) | 返回不小於double的最小BIGINT值。 |
double | rand(), rand(int seed) | 返回一個逐行變化的隨機數。 |
string | concat(string A, string B,...) | 返回將B連線到A之後生成的字串。 |
string | substr(string A, int start) | 返回從起始位置開始到字串A結尾的A的子字串。 |
string | substr(string A, int start, int length) | 返回從起始位置開始,長度為length的A的子字串。 |
string | upper(string A) | 返回將A的所有字元轉換為大寫後生成的字串。 |
string | ucase(string A) | 同上。 |
string | lower(string A) | 返回將B的所有字元轉換為小寫後生成的字串。 |
string | lcase(string A) | 同上。 |
string | trim(string A) | 返回從A的兩端去除空格後生成的字串。 |
string | ltrim(string A) | 返回從A的開頭(左側)去除空格後生成的字串。 |
string | rtrim(string A) | rtrim(string A) 返回從A的結尾(右側)去除空格後生成的字串。 |
string | regexp_replace(string A, string B, string C) | 返回使用C替換B中所有與Java正則表示式語法匹配的子字串後生成的字串。 |
int | size(Map<K,V>) | 返回map型別的元素個數。 |
int | size(Array<T>) | 返回陣列型別的元素個數。 |
<type>的值 | cast(<expr> as <type>) | 將表示式expr的結果轉換為<type>,例如cast('1' as BIGINT) 將字串'1'轉換為其整數表示。如果轉換失敗,則返回NULL。 |
string | from_unixtime(int unixtime) | 將自Unix紀元(1970-01-01 00:00:00 UTC)以來的秒數轉換為表示當前系統時區中該時刻時間戳的字串,格式為“1970-01-01 00:00:00”。 |
string | to_date(string timestamp) | 返回時間戳字串的日期部分:to_date("1970-01-01 00:00:00") = "1970-01-01" |
int | year(string date) | 返回日期或時間戳字串的年份部分:year("1970-01-01 00:00:00") = 1970,year("1970-01-01") = 1970 |
int | month(string date) | 返回日期或時間戳字串的月份部分:month("1970-11-01 00:00:00") = 11,month("1970-11-01") = 11 |
int | day(string date) | 返回日期或時間戳字串的日期部分:day("1970-11-01 00:00:00") = 1,day("1970-11-01") = 1 |
string | get_json_object(string json_string, string path) | 根據指定的JSON路徑從JSON字串中提取JSON物件,並返回提取的JSON物件的JSON字串。如果輸入的JSON字串無效,則返回NULL。 |
示例
以下查詢演示了一些內建函式
round() 函式
hive> SELECT round(2.6) from temp;
查詢成功執行後,您將看到以下響應
3.0
floor() 函式
hive> SELECT floor(2.6) from temp;
查詢成功執行後,您將看到以下響應
2.0
ceil() 函式
hive> SELECT ceil(2.6) from temp;
查詢成功執行後,您將看到以下響應
3.0
聚合函式
Hive支援以下內建**聚合函式**。這些函式的用法與SQL聚合函式相同。
返回型別 | 簽名 | 描述 |
---|---|---|
BIGINT | count(*), count(expr), | count(*) - 返回檢索到的總行數。 |
DOUBLE | sum(col), sum(DISTINCT col) | 返回組中元素的總和或組中列的不同值的總和。 |
DOUBLE | avg(col), avg(DISTINCT col) | 返回組中元素的平均值或組中列的不同值的平均值。 |
DOUBLE | min(col) | 返回組中列的最小值。 |
DOUBLE | max(col) | 返回組中列的最大值。 |
廣告