Hive常用函数

时间:2025-02-25 13:57:31

一 字符串函数

1 substring:截取字符串

语法一:substring(string A, int start)
返回值:string
说明:返回字符串A从start位置到结尾的字符串
语法二:substring(string A, int start, int len)
返回值:string
说明:返回字符串A从start位置开始,长度为len的字符串

select substring("hello",2);   -- 获取第二个字符以后的所有字符
ello
select substring("hello",-3);   -- 获取倒数第三个字符以后的所有字符
llo
select substring("hello",3,2);  -- 从第3个字符开始,向后获取2个字符
ll

2 replace :替换

语法:replace(string A, string B, string C)
返回值:string
说明:将字符串A中的子字符串B替换为C。

select replace('hello', 'h', 'H')
Hello

3 regexp_replace:正则替换

语法:regexp_replace(string A, string B, string C)
返回值:string
说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符。

select regexp_replace('100-200', '(\\d+)', 'num')
num-num

4 regexp:正则匹配

语法:字符串 regexp 正则表达式
返回值:boolean
说明:若字符串符合正则表达式,则返回true,否则返回false。
1)正则匹配成功,输出true

 select 'dfsaaaa' regexp 'dfsa+'
 true

2)正则匹配失败,输出false

select 'dfsaaaa' regexp 'dfsb+';
false

5 repeat:重复字符串

语法:repeat(string A, int n)
返回值:string
说明:将字符串A重复n遍。

select repeat('123', 3);
123123123

6 split :字符串切割

语法:split(string str, string pat)
返回值:array
说明:按照正则表达式pat匹配到的内容分割str,分割后的字符串,以数组的形式返回。

select split('a-b-c-d','-');
["a","b","c","d"]

7 nvl :替换null值

语法:nvl(A,B)
说明:若A的值不为null,则返回A,否则返回B。

select nvl(null,1); 
1

8 concat :拼接字符串

语法:concat(string A, string B, string C, ……)
返回:string
说明:将A,B,C……等字符拼接为一个字符串

select concat('beijing','-','shanghai','-','shenzhen');
beijing-shanghai-shenzhen

9 concat_ws:以指定分隔符拼接字符串或者字符串数组

语法:concat_ws(string A, string…| array(string))
返回值:string
说明:使