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) 返回組中列的最大值。
廣告