本章介紹了在Hive中可用的內(nèi)置函數(shù)。這些函數(shù)看起來(lái)非常類似于SQL的函數(shù),除了他們的使用有點(diǎn)不一樣。
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) | 返回從給定長(zhǎng)度的起始start位置開(kāi)始的字符串。 |
string | upper(string A) | 它返回從轉(zhuǎn)換的所有字符為大寫(xiě)產(chǎn)生的字符串。 |
string | ucase(string A) | 和上面的一樣 |
string | lower(string A) | 它返回轉(zhuǎn)換B的所有字符為小寫(xiě)產(chǎn)生的字符串。 |
string | lcase(string A) | 和上面的一樣 |
string | trim(string A) | 它返回字符串從A.兩端修剪空格的結(jié)果 |
string | ltrim(string A) | 它返回A從一開(kāi)始修整空格產(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á)式語(yǔ)法的字符串 |
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字符串無(wú)效,返回NULL。 |
以下查詢演示了一些內(nèi)置函數(shù):
hive> SELECT round(2.6) from temp;
成功執(zhí)行的查詢,能看到以下回應(yīng):
2.0
hive> SELECT floor(2.6) from temp;
成功執(zhí)行的查詢,能看到以下回應(yīng):
2.0
hive> SELECT ceil(2.6) from temp;
成功執(zhí)行的查詢,能看到以下回應(yīng):
3.0
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) | 返回該組中的列的最大值。 |
更多建議: