Hive中那些有趣的字符串函数

1. 字符串反转函数:reverse
语法: reverse(string A)
返回值: string
说明:返回字符串A的反转结果

举例:hive> select reverse('abcedfg');
OK
gfdecba
Time taken: 0.203 seconds, Fetched: 1 row(s)

2. 带分隔符字符串连接函数:concat_ws
语法: concat_ws(string SEP, string A, string B…)
返回值: string
说明:返回输入字符串连接后的结果,SEP表示各个字符串间的分隔符

举例:hive> select concat_ws(',','abc','def','gh');
OK
abc,def,gh
Time taken: 0.75 seconds, Fetched: 1 row(s)

3. 字符串大小写转换函数:upper,ucase;lower,lcase
语法: upper(string A) ucase(string A) lower(string A) lcase(string A)
返回值: string
说明:返回字符串A的大写格式;返回字符串A的小写格式

举例:hive> select upper('abSEd'),ucase('abSEd'),lower('abSEd'),lcase('abSEd');
OK
ABSED   ABSED   absed   absed
Time taken: 0.058 seconds, Fetched: 1 row(s)

4. 分割字符串函数: split
语法:  split(string str, stringpat)
返回值:  array
说明: 按照pat字符串分割str,会返回分割后的字符串数组

举例:hive> select split('1001|0.2|10|11','\\|');
OK
["1001","0.2","10","11"]
Time taken: 0.077 seconds, Fetched: 1 row(s)

5. split详述:
a.基本用法:
例1:
split('a,b,c,d',',')
得到的结果:
["a","b","c","d"]

b.截取字符串中的某个值:
当然,我们也可以指定取结果数组中的某一项
例2:
split('a,b,c,d',',')[0]
得到的结果:
a

c.特殊字符的处理:
特殊分割符号
regex 为字符串匹配的参数,所以遇到特殊字符的时候需要做特殊的处理
例3:  "." 点
split('192.168.0.1','.')
得到的结果:
[]

正确的写法:
split('192.168.0.1','\\.')
得到的结果:
["192","168","0","1"]

需要注意的是:
当然当split包含在 "" 之中时 需要加4个\
如 hive -e "....  split('192.168.0.1','\\\\.') ... "  不然得到的值是null。
同样的"|"等特殊符号也需要做类似处理。

你可能感兴趣的:(#,Hive)