Hive內建函式


本章介紹了在Hive中可用的內建函式。這些函式看起來非常類似於SQL的函式,除了他們的使用有點不一樣。

內建函式

Hive支援以下內建函式:

返回型別 簽名 描述
BIGINT round(double a) 返回BIGINT最近的double值。
BIGINT floor(double a) 返回最大BIGINT值等於或小於double。
BIGINT ceil(double a) 它返回最小BIGINT值等於或大於double。
double rand(), rand(int seed) 它返回一個亂數,從行改變到行。
string concat(string A, string B,...) 它返回從A後串聯B產生的字串
string substr(string A, int start) 它返回一個起始,從起始位置的子字串,直到A.結束
string substr(string A, int start, int length) 返回從給定長度的起始start位置開始的字串。
string upper(string 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) 它返回從替換所有子在B結果配合C.在Java正規表示式語法的字串
int size(Map<K.V>) 它返回在對映型別的元素的數量。
int size(Array<T>) 它返回在陣列型別元素的數量。
value of <type> cast(<expr> as <type>) 它把表示式的結果expr<型別>如cast('1'作為BIGINT)代表整體轉換為字串'1'。如果轉換不成功,返回的是NULL。
string from_unixtime(int unixtime) 轉換的秒數從Unix紀元(1970-01-0100: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;

成功執行的查詢,能看到以下回應:

2.0

floor() 函式

hive> SELECT floor(2.6) from temp;

成功執行的查詢,能看到以下回應:

2.0

floor() 函式

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


以下是糾正/補充內容:

floor?函式hive> temp成功執行的查詢,能看到以下回應:3.0這裡應該是deil函式而不是floor函式的用法  提交時間:2019-09-06