鍍金池/ 教程/ 大數(shù)據(jù)/ Hive內(nèi)置函數(shù)
Hive創(chuàng)建數(shù)據(jù)庫
Hive內(nèi)置函數(shù)
Hive刪除數(shù)據(jù)庫
Hive視圖和索引
Hive內(nèi)置運(yùn)算符
Hive刪除表
HiveQL Select Order By
HiveQL Select Group By
Hive修改表
HiveQL Select Join
HiveQL Select Where
Hive分區(qū)
Hive教程
Hive數(shù)據(jù)類型
Hive安裝
Hive創(chuàng)建表

Hive內(nèi)置函數(shù)

本章介紹了在Hive中可用的內(nèi)置函數(shù)。這些函數(shù)看起來非常類似于SQL的函數(shù),除了他們的使用有點(diǎn)不一樣。

內(nèi)置函數(shù)

Hive支持以下內(nèi)置函數(shù):

返回類型 簽名 描述
BIGINT round(double a) 返回BIGINT最近的double值。
BIGINT floor(double a) 返回最大BIGINT值等于或小于double。
BIGINT ceil(double a) 它返回最小BIGINT值等于或大于double。
double rand(), rand(int seed) 它返回一個(gè)隨機(jī)數(shù),從行改變到行。
string concat(string A, string B,...) 它返回從A后串聯(lián)B產(chǎn)生的字符串
string substr(string A, int start) 它返回一個(gè)起始,從起始位置的子字符串,直到A.結(jié)束
string substr(string A, int start, int length) 返回從給定長度的起始start位置開始的字符串。
string upper(string A) 它返回從轉(zhuǎn)換的所有字符為大寫產(chǎn)生的字符串。
string ucase(string A) 和上面的一樣
string lower(string A) 它返回轉(zhuǎn)換B的所有字符為小寫產(chǎn)生的字符串。
string lcase(string A) 和上面的一樣
string trim(string A) 它返回字符串從A.兩端修剪空格的結(jié)果
string ltrim(string A) 它返回A從一開始修整空格產(chǎn)生的字符串(左手側(cè))
string rtrim(string A) rtrim(string A),它返回A從結(jié)束修整空格產(chǎn)生的字符串(右側(cè))
string regexp_replace(string A, string B, string C) 它返回從替換所有子在B結(jié)果配合C.在Java正則表達(dá)式語法的字符串
int size(Map<K.V>) 它返回在映射類型的元素的數(shù)量。
int size(Array<T>) 它返回在數(shù)組類型元素的數(shù)量。
value of <type> cast(<expr> as <type>) 它把表達(dá)式的結(jié)果expr<類型>如cast('1'作為BIGINT)代表整體轉(zhuǎn)換為字符串'1'。如果轉(zhuǎn)換不成功,返回的是NULL。
string from_unixtime(int unixtime) 轉(zhuǎn)換的秒數(shù)從Unix紀(jì)元(1970-01-0100:00:00 UTC)代表那一刻,在當(dāng)前系統(tǒng)時(shí)區(qū)的時(shí)間戳字符的串格式:"1970-01-01 00:00:00"
string to_date(string timestamp) 返回一個(gè)字符串時(shí)間戳的日期部分:to_date("1970-01-01 00:00:00") = "1970-01-01"
int year(string date) 返回年份部分的日期或時(shí)間戳字符串:year("1970-01-01 00:00:00") = 1970, year("1970-01-01") = 1970
int month(string date) 返回日期或時(shí)間戳記字符串月份部分:month("1970-11-01 00:00:00") = 11, month("1970-11-01") = 11
int day(string date) 返回日期或時(shí)間戳記字符串當(dāng)天部分: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對(duì)象,并返回提取的JSON字符串的JSON對(duì)象。如果輸入的JSON字符串無效,返回NULL。

示例

以下查詢演示了一些內(nèi)置函數(shù):

round() 函數(shù)

hive> SELECT round(2.6) from temp;

成功執(zhí)行的查詢,能看到以下回應(yīng):

2.0

floor() 函數(shù)

hive> SELECT floor(2.6) from temp;

成功執(zhí)行的查詢,能看到以下回應(yīng):

2.0

floor() 函數(shù)

hive> SELECT ceil(2.6) from temp;

成功執(zhí)行的查詢,能看到以下回應(yīng):

3.0

聚合函數(shù)

Hive支持以下內(nèi)置聚合函數(shù)。這些函數(shù)的用法類似于SQL聚合函數(shù)。

返回類型 簽名 描述
BIGINT count(*), count(expr), count(*) - 返回檢索行的總數(shù)。
DOUBLE sum(col), sum(DISTINCT col) 返回該組或該組中的列的不同值的分組和所有元素的總和。
DOUBLE avg(col), avg(DISTINCT col) 返回上述組或該組中的列的不同值的元素的平均值。
DOUBLE min(col) 返回該組中的列的最小值。
DOUBLE max(col) 返回該組中的列的最大值。