欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

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

来源: javaer 分享于  点击 34387 次 点评:187

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


记录一个Pig字符串截取的实战小例子:

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

Java代码  
  1. 1 2  3 4  
  2. a:ab#c#d   
  3. a:c#c#d   
  4. a:dd#c#d   
  5. 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代码  
  1.   
  2. a = laod '/tmp/data' as (data:chararray)   
  3. //注意逻辑是,先获取冒号后面的数据,然后split成tuple,再通过$1(下标访问元素)获取我们需要的数据即可。   
  4. b = foreach a generate STRSPLIT (REGEX_EXTRACT (data, '(.*):(.*)'2) ,'#',5).$0;   
  5.   
  6. 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;



相关文章

    暂无相关文章

用户点评