hive函数四

151 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情

本文继续来介绍hive中的字符串函数,上文介绍了字符串的连接、反转和长度获取,本文介绍特殊的字符串连接和字符串截取功能的函数,废话不多说,这就开始吧。首先来介绍的就是特殊的字符串连接,序号都是延续着上一篇的,方便大家阅读。

4、concat_ws 带间隔符字符串连接函数 作用:获得有统一分隔符的字符串连接结果

常见使用方法:concat_ws(string SEP, string A, string B…)

具体功能描述:上面介绍过在hive中也有将多个字符串连接在一起的方法,那就是concat,是通过输入多个字符串类型的参数,然后返回其按顺序连接后的结果,那么concat_ws和concat不同的地方就是在第一个字符串内可以输入想要的分隔符,比如逗号,就可以在最后连接这些字符串后,在每个字符串之间插入这个分隔符号了,注意这里不支持输入多个分隔符字符串,输入多个,也只会按照第一个作为分隔符来处理。该函数的返回结果也是string ,SEP 表示各个字符串间的分隔符。

select concat_ws( ',' ,  'abc' ,  'def' ,  'gh' ); 
>> abc,def,gh
​
select concat_ws( ' ' ,  '张三' ,  '里斯' ,  '王五' ); 
>> 张三 里斯 王五
​
select concat_ws( ' ' , ',', '张三' ,  '里斯' ,  '王五' ); -- 重点看下这个处理结果,此处空格是分隔符
>> , 张三 里斯 王五

5、substr | substring 字符串截取函数 作用:截取任意长度字符串

常见使用方法:substr(string A, int start), substr(string A, int start, int len)

具体功能描述:返回结果类型为string ,返回字符串 A 从 start 位置到结尾的字符串。

select substr( '张三李四王五' ,  3 ); 
>>   李四王五
​
select substr( '张三李四' ,  3 ,  2 ); -- 返回字符串 A 从 start 位置开始,长度为 len 的字符串。 
​
>> 李四    
​
select substring( '张三李四王五' , - 2 ,  2 ); -- 倒数第二个字符,读取 2 个长度的字符串 
​
>> 王五
​