1.字符串长度计算函数:length
语法:length(string A),
返回值:int
例子:
spark-sql> select length('abc');
3
Time taken: 0.095 seconds, Fetched 1 row(s)
2.字符串反转函数:reverse
语法:reverse(string A)
返回值: string
说明:返回字符串A的反转结果
例子:
spark-sql> select reverse('abc');
cba
Time taken: 0.147 seconds, Fetched 1 row(s)
3.字符串连接函数:concat
语法:concat(string A,string B…)
返回值:string
说明:返回输入字符串连接后的结果,支持任意多个输入字符串
例子:
spark-sql> select concat('a','_','c');
a_c
Time taken: 0.068 seconds, Fetched 1 row(s)
4.带分隔符字符串连接函数:concat_ws
语法: concat_ws(string separator, string A, string B,string C…)
返回值:string
说明:返回输入字符串连接后的结果,separator表示各个字符串间的分隔符;
常和collect_list、collect_set一起使用,想了解详细信息,可以点击hive系统函数collect_list和collect_set的应用
例子:
spark-sql> select concat_ws('_','a','b','c');
a_b_c
Time taken: 0.142 seconds, Fetched 1 row(s)
5.字符串截取函数:substr、substring
语法:substr(string A,int start)、substring(string A, int start)
返回值:string
说明:返回字符串A从start位置到结尾的字符串
例子:
spark-sql> select substr('abc',2);
bc
Time taken: 0.11 seconds, Fetched 1 row(s)
spark-sql> select substring('abc',-1);
c
Time taken: 0.03 seconds, Fetched 1 row(s)
6.字符串截取函数:substr、substring
语法: substr(string A, int start, int len),substring(string A, intstart, int len)
返回值:string
说明:返回字符串A从start位置开始,长度为len的字符串
例子:
spark-sql> select substr('abcdef',1,3);
abc
Time taken: 0.11 seconds, Fetched 1 row(s)
spark-sql> select substring('abcdef',3,6);
cdef
Time taken: 0.054 seconds, Fetched 1 row(s)
7.字符串转大写函数:upper、ucase
语法:upper(string A)、ucase(string A)
返回值:string
说明:返回字符串A的大写格式
例子:
spark-sql> select upper('abc');
ABC
Time taken: 0.03 seconds, Fetched 1 row(s)
spark-sql> select ucase('abc');
ABC
Time taken: 0.156 seconds, Fetched 1 row(s)
8.字符串转小写函数:lower、lcase
语法:lower(string A)、lcase(string A)
返回值:string
说明:返回字符串A的小写格式
例子:
spark-sql> select lower('ABC');
abc
Time taken: 0.193 seconds, Fetched 1 row(s)
spark-sql> select lcase('ABC');
abc
Time taken: 0.032 seconds, Fetched 1 row(s)
9.去空格函数:trim
语法:trim(string A)
返回值:string
说明:去除字符串两边的空格
例子:
spark-sql> select trim(' ab ');
ab
Time taken: 0.024 seconds, Fetched 1 row(s)
10.左边去空格函数:ltrim
语法:ltrim(string A)
返回值:string
说明:去除字符串左边的空格
例子:
spark-sql> select ltrim(' ab');
ab
Time taken: 0.036 seconds, Fetched 1 row(s)
11.右边去空格函数:rtrim
语法:rtrim(string A)
返回值:string
说明:去除字符串右边的空格
例子:
spark-sql> select rtrim('ab ');
ab
Time taken: 0.024 seconds, Fetched 1 row(s)
12.分割字符串函数: split
语法:split(string str, string pat)
返回值:array
说明:按照pat字符串分割str,会返回分割后的字符串数组
例子:
spark-sql> select split('name,address',',');
["name","address"]
Time taken: 3.046 seconds, Fetched 1 row(s)
spark-sql> select split('name,address',',')[0];
name
Time taken: 0.041 seconds, Fetched 1 row(s)
13.空格字符串函数:space
语法:space(int n)
返回值:string
说明:返回长度为n的字符串
例子:
spark-sql> select concat_ws(space(1),'a','b','c');
a b c
Time taken: 0.031 seconds, Fetched 1 row(s)
14.重复字符串函数:repeat
语法:repeat(string str, int n)
返回值:string
说明:返回重复n次后的str字符串
例子:
spark-sql> select repeat('abc',3);
abcabcabc
Time taken: 0.034 seconds, Fetched 1 row(s)
15.左补足函数:lpad
语法:lpad(string str, int len, string pad)
返回值:string
说明:将str进行用pad进行左补足到len位
例子:
spark-sql> select lpad('abc',10,'d');
dddddddabc
Time taken: 0.035 seconds, Fetched 1 row(s)
16.右补足函数:rpad
语法:rpad(string str, int len, string pad)
返回值:string
说明:将str进行用pad进行右补足到len位
例子:
spark-sql> select rpad('abc',10,'d');
abcddddddd
Time taken: 0.027 seconds, Fetched 1 row(s)
17.正则表达式替换函数:regexp_replace(hive里面可以用replace和regexp_replace,spark-sql只能用regexp_replace)
语法:regexp_replace(string A, string B, string C)
返回值:string
说明:将字符串A中的符合正则表达式B的部分替换为C
例子:
spark-sql> select regexp_replace('abc','a','d');
dbc
Time taken: 0.025 seconds, Fetched 1 row(s)
spark-sql> select regexp_replace('abcd','a|c','f');
fbfd
Time taken: 0.029 seconds, Fetched 1 row(s)
18.URL解析函数:parse_url
语法:parse_url(string urlString, string partToExtract [stringkeyToExtract])
返回值:string
说明:返回URL中指定的部分。partToExtract的有效值为:HOST, PATH, QUERY, REF, PROTOCOL, AUTHORITY, FILE, and USERINFO.
例子:
spark-sql> select parse_url('https://blog.csdn.net/weixin_40267121/article/details/119185340?spm=1001.2014.3001.5501','HOST');
blog.csdn.net
Time taken: 0.107 seconds, Fetched 1 row(s)
spark-sql> select parse_url('https://blog.csdn.net/weixin_40267121/article/details/119185340?spm=1001.2014.3001.5501','PATH');
/weixin_40267121/article/details/119185340
Time taken: 0.424 seconds, Fetched 1 row(s)
spark-sql> select parse_url('https://blog.csdn.net/weixin_40267121/article/details/119185340?spm=1001.2014.3001.5501','QUERY','spm');
1001.2014.3001.5501
Time taken: 0.256 seconds, Fetched 1 row(s)
19.json解析函数:get_json_object
语法:get_json_object(string json_string, string path)
返回值:string
说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。
例子:
spark-sql> select get_json_object('{"data":{"age":10}}','$.data.age');
10
Time taken: 0.028 seconds, Fetched 1 row(s)