hive中的字符串提取
发布网友
发布时间:2022-12-05 10:51
我来回答
共1个回答
热心网友
时间:2024-11-29 15:24
在进行数据分析时,尤其要对网页进行分析时,我们往往要对其中部分的数据进行抽取,这个就需要靠hive的函数来完成了。
首先要讲的是split函数,这个函数的作用是对字符窜进行分割,基本用法为:split(string str, string pat) ,返回值为一个数组array,因此要取值得话需要用到切片,即[数字],其中第一个str是要切分的字符串,第二个pat是以什么字符进行切割。来看案例吧。
有的时候切割不是一下就能完成,那么就多去嵌套几次split就好了。
返回字符串从某个位置开始固定长度的子串,和substring功能相同,基本用法为substr(string A, int start, int len ),还是来看例子。值得注意的是,substr(str,0,2)和substr(str,1,2)的功能都是一样的,都是从第一个位置开始。
这个函数是个神器,可以解析url结构,返回我们想要的东西。基本用法为parse_url(string urlString, string partToExtract [, string keyToExtract]),其中partToExtract的有效值包括HOST,PATH, QUERY, REF, PROTOCOL, AUTHORITY,FILE和USERINFO等,具体我就不一一解释了,大家使用时可以自行百度。重点说一下,当第二个参数是QUERY时,第三个参数就可以使用了,这个是参数提取最有用的方法了,还是以案例来说明。
这个函数是最终的大杀器了,以上都解决不了你的问题的时候,有了这个一切都可以解决,使用这个函数的基础是正则表达式基础要会一些。这个函数的基本用法是regexp_extract(string subject, string pattern, int index),第一个参数是待处理的字符串,第二个参数是写好的正则,第三个表达式一般用不上可以忽略掉。来看例子:
有了以上函数,相信应该能满足大家对于hive进行字符串提取的一切要求了。