hive同时不包含一些字符串_hive中的字符串提取
在进行数据分析时,尤其要对网页进行分析时,我们往往要对其中部分的数据进行抽取,这个就需要靠hive的函数来完成了。
1.split函数
首先要讲的是split函数,这个函数的作用是对字符窜进行分割,基本用法为:split(string str, string pat) ,返回值为一个数组array,因此要取值得话需要用到切片,即[数字],其中第一个str是要切分的字符串,第二个pat是以什么字符进行切割。来看案例吧。
hive> select split('abcdef', 'c') ;
OK
["ab","def"]
Time taken: 8.071 seconds, Fetched: 1 row(s)
--只取第一部分
hive> select split('abcdef', 'c') [0];
OK
ab
Time taken: 5.326 seconds, Fetched: 1 row(s)
有的时候切割不是一下就能完成,那么就多去嵌套几次split就好了。
2.substr函数
返回字符串从某个位置开始固定长度的子串,和substring功能相同,基本用法为substr(string A, int start, int len ),还是来看例子。值得注意的是,substr(str,0,2)和substr(str,1,2)的功能都是一样的,都是从第一个位置开始。
hive> select substr('abcde',1,2);
OK
ab
Time taken: 0.086 seconds, Fetched: 1 row(s)
hive> select substr('abcde',0,2);
OK
ab
Time taken: 0.089 seconds, Fetched: 1 row(s)
3.parse_url函数
这个函数是个神器,可以解析url结构,返回我们想要的东西。基本用法为parse_url(string urlString, string partToExtract [, string keyToExtract]),其中partToExtract的有效值包括HOST,PATH, QUERY, REF, PROTOCOL, AUTHORITY,FILE和USERINFO等,具体我就不一一解释了,大家使用时可以自行百度。重点说一下,当第二个参数是QUERY时,第三个参数就可以使用了,这个是参数提取最有用的方法了,还是以案例来说明。
hive> select parse_url('http://facebook.com/path1/p.php?k1=v1&k2=v2#Ref1',
> 'QUERY', 'k1');
OK
v1
Time taken: 0.428 seconds, Fetched: 1 row(s)
hive>
4.regexp_extract函数
这个函数是最终的大杀器了,以上都解决不了你的问题的时候,有了这个一切都可以解决,使用这个函数的基础是正则表达式基础要会一些。这个函数的基本用法是regexp_extract(string subject, string pattern, int index),第一个参数是待处理的字符串,第二个参数是写好的正则,第三个表达式一般用不上可以忽略掉。来看例子:
hive> select regexp_extract(split(split('https://m.baidu.com.cn/7874','baidu.com.cn/')
[1],'/')[0],'\\d+',0);
OK
7874
Time taken: 0.059 seconds, Fetched: 1 row(s)
有了以上函数,相信应该能满足大家对于hive进行字符串提取的一切要求了。
hive同时不包含一些字符串_hive中的字符串提取相关推荐
- R语言str_flatten函数通过自定义字符连接(concatenate)字符串向量中的字符串
R语言str_flatten函数通过自定义字符连接(concatenate)字符串向量中的字符串 目录 R语言st
- java返回字符数组_JAVA语言实现随机返回字符串数组中的字符串
本文主要向大家介绍了JAVA语言实现随机返回字符串数组中的字符串,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. //随机返回字符串数组中的字符串 public static Stri ...
- hive同时不包含一些字符串_Hive中常用的字符串操作
一.准备 创建虚表: echo "X" >> dual.tsv hadoop fs -put dual.tsv '/data//' create table dual( ...
- java 字符串包含某个字符_java中判断字符串中是否包含某个特定字符串的方法有哪些...
判断一个字符串是否包含某个子串的n种方法: 1.startsWith()方法 2.contains()方法 3.indexOf方法 startsWith()方法 这个方法有两个变体,用于检测字符串是否 ...
- python中定义字符串_python中的字符串
python中的字符串一旦定义,则不可以修改 python中的原始字符串 即 在字符串前面加小写字母r 比如:打印输出C:\Program Files\Microsoft Games python中的 ...
- python中定义字符串_Python中的字符串String
Python中除了数字(Numbers)(int,float,complex)之外,另外一种重要的类型就是字符串. 字符串是字符序列,可以由任何字符构成. 在Python语言中,字符串可以放在单引号( ...
- python中格式化字符串_Python中所有字符串格式化的指南
python中格式化字符串 Strings are one of the most essential and used datatypes in programming. It allows the ...
- java中截取部分字符串_JAVA中截取字符串substring用法详解
substring public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串.该子字符串始于指定索引处的字符,一直到此字符串末尾. ...
- java截取倒数后六位的字符串_JAVA中截取字符串substring用法详解
substring public String substring(int beginIndex) 返回一个新的字符串,它是此字符串的一个子字符串.该子字符串始于指定索引处的字符,一直到此字符串末尾. ...
最新文章
- PowerDesigner连接SqlServer数据库导出表结构
- c#中结构体和类的比较
- 二值化_处理连续型特征:二值化与分段
- 《用户网络行为画像》读书笔记(一)
- vue打包后,font格式错误
- 如何变得井井有条-来之不易的秘诀来组织您的生活
- PageHelper分页插件使用
- git 历史版本导出_Git基础知识(九)
- Iterables和迭代器
- 跨域请求的两种实现方式
- selenium+java+chrome环境搭建
- png批量转换成jpg
- 禁止百度转码和百度快照缓存的META声明
- 从零开始学习Prometheus监控报警系统
- 魔百盒CM201-2-YS代工-刷机固件及教程
- IE8 正式版官方下载链接
- 公司研发人员(含测试)经理、组长能力评价表
- 引流产品用哪些比较合适?什么样的产品适合做引流?
- 浅谈:Java和C语言各自的学习难度
- 【SpringBoot2.0】基于Atomikos的多数据源分布式事务(XA)解决方案