`
qindongliang1922
  • 浏览: 2146902 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:116311
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:124580
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:58448
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:70345
社区版块
存档分类
最新评论

Apache Pig字符串截取实战小例子

    博客分类:
  • Pig
阅读更多
记录一个Pig字符串截取的实战小例子:

需求如下,从下面的字符串里提取出第2列(冒号后面)的值:

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脚本写法:

a = laod '/tmp/data' as (data:chararray)
//注意逻辑是,先获取冒号后面的数据,然后split成tuple,再通过$1(下标访问元素)获取我们需要的数据即可。
b = foreach a generate STRSPLIT (REGEX_EXTRACT (data, '(.*):(.*)', 2) ,'#',5).$0;

dump b;







想了解更多有关电商互联网公司的搜索技术和大数据技术的使用,请欢迎扫码关注微信公众号:我是攻城师(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!





0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics