hive中的字符串提取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive中的字符串提取相关的知识,希望对你有一定的参考价值。

参考技术A   在进行数据分析时,尤其要对网页进行分析时,我们往往要对其中部分的数据进行抽取,这个就需要靠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进行字符串提取的一切要求了。

以上是关于hive中的字符串提取的主要内容,如果未能解决你的问题,请参考以下文章

是否可以通过使用 Hive Script SQL 中的分隔符来提取字符串的一部分?

使用正则表达式提取部分字符串的 Hive 查询

如何在 HIVE 中提取字符串的一部分?

Hive:从/分隔列中提取子字符串

方括号内的 Impala/Hive 字符串提取

如何使用hive确定字符位置?例如,字符规则是aaaa_aaa想提取'_'后面的内容,怎么操作