Apache Pig字符串截取实战小例子
2015-03-13 17:32
489 查看
记录一个Pig字符串截取的实战小例子:
需求如下,从下面的字符串里提取出第2列(冒号后面)的值:
Java代码
1 2 3 4
a:ab#c#d
a:c#c#d
a:dd#c#d
a:zz#c#d
如果是在java里,方法可能有很多种,比如substring,或者split多次等,在pig也大致如此,可以使用SUBSTRING内置函数来完成,但散仙推荐使用下面的方式,这种方式比较灵活,适合大部分场景的数据提取,需要用到的2个函数如下:
(1)REGEX_EXTRACT('原始字符串','正则式',int类型的返回索引)
(2)STRSPLIT('原始字符串', '正则式', 限制返回的个数)
pig脚本写法:
Java代码
a = laod '/tmp/data' as (data:chararray)
//注意逻辑是,先获取冒号后面的数据,然后split成tuple,再通过$1(下标访问元素)获取我们需要的数据即可。
b = foreach a generate STRSPLIT (REGEX_EXTRACT (data, '(.*):(.*)', 2) ,'#',5).$0;
dump b;
需求如下,从下面的字符串里提取出第2列(冒号后面)的值:
Java代码
1 2 3 4
a:ab#c#d
a:c#c#d
a:dd#c#d
a:zz#c#d
1 2 3 4 a:ab#c#d a:c#c#d a:dd#c#d a:zz#c#d
如果是在java里,方法可能有很多种,比如substring,或者split多次等,在pig也大致如此,可以使用SUBSTRING内置函数来完成,但散仙推荐使用下面的方式,这种方式比较灵活,适合大部分场景的数据提取,需要用到的2个函数如下:
(1)REGEX_EXTRACT('原始字符串','正则式',int类型的返回索引)
(2)STRSPLIT('原始字符串', '正则式', 限制返回的个数)
pig脚本写法:
Java代码
a = laod '/tmp/data' as (data:chararray)
//注意逻辑是,先获取冒号后面的数据,然后split成tuple,再通过$1(下标访问元素)获取我们需要的数据即可。
b = foreach a generate STRSPLIT (REGEX_EXTRACT (data, '(.*):(.*)', 2) ,'#',5).$0;
dump b;
a = laod '/tmp/data' as (data:chararray) //注意逻辑是,先获取冒号后面的数据,然后split成tuple,再通过$1(下标访问元素)获取我们需要的数据即可。 b = foreach a generate STRSPLIT (REGEX_EXTRACT (data, '(.*):(.*)', 2) ,'#',5).$0; dump b;
相关文章推荐
- Apache Pig字符串截取实战小例子
- C# 截取字符串 例子:截取ftp地址信息
- C语言截取字符串的例子
- 截取字符串的一个例子
- Powershell截取字符串并添加省略号的例子
- 截取字符串。输入字符串和按照多大字节进行截取,输出结果:按照字节截取的字符串。注意:汉字占两个字节,所以输入的汉字不能截取为半个汉字!!!例子:输入“我ABC爱北京”,字节输入6,结果为:“我ABC”
- C语言截取字符串的例子
- JAVA 正则表达式截取字符串小例子
- SQL自定义函数 字符串截取 递归查询 以及一个小例子
- 关于字符串的连接与截取例子。,。。
- 字符串截取相关例子
- 字符串截取例子 大小写转换 拼接例子 把oc转成c语言
- shell与awk学习复习例子(循环与字符串截取判断)
- 一个关于字符串截取输出的例子
- python字符串截取与替换的例子
- Java 小例子:按字节截取字符串
- python中使用状态机的简单例子---截取'/x00'之前的字符串
- SQL字符串截取 查找,拼接的例子
- mysql下的将多个字段名的值复制到另一个字段名中(批量更新数据)字符串拼接cancat实战例子
- 几个字符串转换的例子