大數(shù)據(jù)培訓(xùn)_Hive 常用函數(shù)
發(fā)布時(shí)間:
2019-09-17 17:40:36
Hive數(shù)據(jù)庫(kù)中內(nèi)置一些常用的函數(shù),同時(shí)hive也支持自定義函數(shù)。hive自定義函數(shù),主要是通過(guò)java編程實(shí)現(xiàn),因?yàn)閔ive是java所寫(xiě)的。下面主要是介紹一些hive當(dāng)中的一些常用的函數(shù)的使用。通過(guò)對(duì)函數(shù)的學(xué)習(xí),有利于對(duì)于hive的業(yè)務(wù)操作。
步驟 1 首先執(zhí)行環(huán)境變量。
> source /home/user01/hadoopClient/bigdata_env
步驟 2 進(jìn)入 Hive 客戶端 beeline。
> /home/user01/hadoopClient/Hive/Beeline/bin/beeline
...
Connected to: Apache Hive (version 1.3.0)
Driver: Hive JDBC (version 1.3.0)
Transaction isolation: TRANSACTION_REPEATABLE_READ
Beeline version 1.3.0 by Apache Hive
0: jdbc:hive2://192.168.225.11:21066/>
步驟 3 字符串函數(shù) length(string A)。
字符串長(zhǎng)度函數(shù):length
語(yǔ)法: length(string A)
返回值: int
說(shuō)明:返回字符串 A 的長(zhǎng)度
hive> select length(‘a(chǎn)bcedfg’);
7
步驟 4 字符串反轉(zhuǎn)函數(shù) reverse。
語(yǔ)法: reverse(string A)
返回值: string
說(shuō)明:返回字符串 A 的反轉(zhuǎn)結(jié)果
hive> select reverse(‘a(chǎn)bcedfg’);
gfdecba
步驟 5 字符串連接函數(shù) concat。
語(yǔ)法: concat(string A, string B…)
返回值: string
說(shuō)明:返回輸入字符串連接后的結(jié)果,支持任意個(gè)輸入字符串
hive> select concat(‘a(chǎn)bc’,'def’,'gh’);
abcdefgh
步驟 6 帶分隔符字符串連接函數(shù) concat_ws。
語(yǔ)法: concat_ws(string SEP, string A, string B…)
返回值: string
說(shuō)明:返回輸入字符串連接后的結(jié)果,SEP 表示各個(gè)字符串間的分隔符
hive> select concat_ws(‘-’,'abc’,'def’,'gh’);
abc-def-gh
步驟 7 字符串截取函數(shù) substr,substring。
語(yǔ)法: substr(string A, int start, int len),substring(string A, int start, int len)
返回值: string
說(shuō)明:返回字符串 A 從 start 位置開(kāi)始,長(zhǎng)度為 len 的字符串
hive> select substr('abcde',3,2);
cd
hive>select substr ('abcde',-2,2);
de
步驟 8 字符串轉(zhuǎn)大寫(xiě)函數(shù) upper,ucase。
語(yǔ)法: upper(string A) ucase(string A)
返回值: string
說(shuō)明:返回字符串 A 的大寫(xiě)格式
hive> select upper(‘a(chǎn)bC’);
ABC
hive> select ucase(‘a(chǎn)bC’);
ABC
步驟 9 字符串轉(zhuǎn)小寫(xiě)函數(shù) lower,lcase。
語(yǔ)法: lower(string A) lcase(string A)
返回值: string
說(shuō)明:返回字符串 A 的小寫(xiě)格式
hive> select lower(‘a(chǎn)bC’);
abc
hive> select lcase(‘a(chǎn)bC’);
abc
步驟 10 去空格函數(shù) trim。
語(yǔ)法: trim(string A)
返回值: string
說(shuō)明:去除字符串兩邊的空格
hive> select trim(‘ abc ‘);
abc
步驟 11 分割字符串函數(shù) split。
語(yǔ)法: split(string str, string pat)
返回值: array
說(shuō)明: 按照 pat 字符串分割 str,會(huì)返回分割后的字符串?dāng)?shù)組
hive> select split(‘a(chǎn)btcdtef’,'t’);
["ab","cd","ef"]
步驟 12 日期函數(shù)。
獲取當(dāng)前 UNIX 時(shí)間戳函數(shù): unix_timestamp
語(yǔ)法: unix_timestamp()
返回值: bigint
說(shuō)明: 獲得當(dāng)前時(shí)區(qū)的 UNIX 時(shí)間戳。
hive> select unix_timestamp() from dual;
1521511607
UNIX 時(shí)間戳轉(zhuǎn)日期函數(shù): from_unixtime
語(yǔ)法:from_unixtime(bigint unixtime[, string format])
返回值: string
說(shuō)明: 轉(zhuǎn)化 UNIX 時(shí)間戳(從 1970-01-01 00:00:00 UTC 到指定時(shí)間的秒數(shù))到當(dāng)前時(shí)區(qū)的時(shí)間
格式。
hive> select from_unixtime(1521511607,'yyyyMMdd');
20180320
上一篇:
大數(shù)據(jù)培訓(xùn)_Flume海量日志采集快速入門(mén)
下一篇:
Python培訓(xùn)_Python獎(jiǎng)金管理案例