hive最全的常用字符串函数(建议收藏)

本文详细介绍了Spark SQL中的字符串处理函数,包括length、reverse、concat、concat_ws、substr、substring、upper、lower、trim、ltrim、rtrim、split、space、repeat、lpad、rpad、regexp_replace、parse_url和get_json_object等。这些函数在数据清洗和处理中非常实用,帮助开发者高效地操作和转换字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/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.youkuaiyun.com/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.youkuaiyun.com/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)
Hive 中提供了一系列的字符串函数来帮助处理和转换字符串数据。以下是一些常用Hive字符串函数: 1. concat.ws():使用指定的分隔符连接字符串。例如,`concat.ws('-', 'a', 'b', 'c')` 将返回 "a-b-c"。 2. substr():用于截取字符串。例如,`substr('foobar', 3, 2)` 将返回 "ba"。 3. length():返回字符串的长度。例如,`length('foobar')` 将返回 6。 4. lower():将字符串中的所有字符转换为小写。例如,`lower('FOOBAR')` 将返回 "foobar"。 5. upper():将字符串中的所有字符转换为大写。例如,`upper('foobar')` 将返回 "FOOBAR"。 6. trim():去除字符串两端的空白字符。例如,`trim(' foobar ')` 将返回 "foobar"。 7. ltrim():去除字符串左侧的空白字符。例如,`ltrim(' foobar')` 将返回 "foobar"。 8. rtrim():去除字符串右侧的空白字符。例如,`rtrim('foobar ')` 将返回 "foobar"。 9. replace():替换字符串中的字符或子字符串。例如,`replace('foobar', 'foo', 'bar')` 将返回 "barbar"。 10. split():将字符串按照指定的分隔符进行分割。例如,`split('foo,bar', ',')` 将返回一个数组["foo", "bar"]。 11. concat():连接两个或多个字符串。例如,`concat('foo', 'bar')` 将返回 "foobar"。 12. regexp_replace():使用正则表达式来替换字符串中的字符或子字符串。例如,`regexp_replace('foobar', 'ooba', 'xx')` 将返回 "fox"。 13. initcap():将每个单词的首字母转换为大写,其余为小写。例如,`initcap('foo bar')` 将返回 "Foo Bar"。 14. left():返回字符串最左边的指定数量的字符。例如,`left('foobar', 3)` 将返回 "foo"。 15. right():返回字符串最右边的指定数量的字符。例如,`right('foobar', 3)` 将返回 "bar"。 这些函数在处理Hive中的字符串数据时非常有用,能够帮助用户实现各种字符串操作和数据转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值