今天分享一个小案例,介绍下需求,判断某个网站的前缀,并给其打上特定的标签值:
一个java代码例子如下:
public String getTag(){
//url文本
String url="http://www.baidu.com.cn";
//标签值
String tags=null;
if(url.startsWith("http://www.baidu")){
tags="1";
}else if(url.startsWith("http://www.dhx")){
tags="2";
}else{
tags="0";
}
return url;
}
原来我的解决方法,是写了个UDF函数,来搞定,后来想了想使用UDF虽然比较灵活,但是侵入性比较强,过程比较繁琐,尤其是还得maven打成jar包,注册pig的udf函数,所以,便可以使用pig的replace的函数,来解决:
REPLACE函数用法:
REPLACE(str,regex,str2):
解释一下,三个参数
第一个是原始数据
第二个是匹配的正则 ,需要注意一些特殊字符需要转义, java中匹配任何字符的正则式时.*
第三个是替换后的内容
例子数据:
1,2,3
2,1,3
6,7,1
1,4,4
121,45,100
100,23,12
600,12,50
4,1,2
http://www.baidu.com,1,2
http://www.video.baidu.com,1,2
http://www.souhu.com.cn,1,2
http://www.dh.com,1,2
http://www.es.dh.com,1,2
http://www.baidu.com,1,2
http://www.baidu.com,1,2
需求,将第一列等于1的和以http://www.baidu开头的内容,替换成对应的中文称呼:
pig脚本如下:
a = load '/test' using PigStorage(',');
--其他特殊字符需要转义 最后的.*代表,替换所有内容为指定内容
a = foreach a generate REPLACE($0,'^http:\\/\\/www\\.baidu.*','百度') , $1 ;
--多次替换可执行多个foreach过滤
a = foreach a generate REPLACE($0,'^1$','一') , $1 ;
dump a;
执行结果如下:
(一,2)
(2,1)
(6,7)
(一,4)
(121,45)
(100,23)
(600,12)
(4,1)
(百度,1)
(http://www.video.baidu.com,1)
(http://www.souhu.com.cn,1)
(http://www.dh.com,1)
(http://www.es.dh.com,1)
(百度,1)
(百度,1)
这种方式,适合逻辑不是特别复杂的情况下使用,总体来看,比较简单方便易懂
最后欢迎大家扫码关注微信公众号:我是攻城师(woshigcs),我们一起学习,进步和交流!(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!
分享到:
相关推荐
Learn to use Apache Pig to develop lightweight big data applications easily and quickly. This book shows you many optimization techniques and covers every context where Pig is used in big data ...
Beginning Apache Pig: Big Data Processing Made Easy English | 29 Dec. 2016 | ISBN: 1484223365 | 300 Pages | PDF | 4.9 MB Learn to use Apache Pig to develop lightweight big data applications easily ...
apache pig 基础及应用,urldecode row_number web日志分析 根据 用户行为 做出 简易的 相似度 判断。
TutorialsPoint Apache Pig 介绍.epub
Apache Pig的性能优化.pdf
分享嘉宾:李尤(智联招聘 高级工程师) 分享内容:天讲的主要题目就是Hadoop的应用。我们有两块,一块是日志分析。还有一块是简单的应用。
Hadoop 2012 大数据大会 的资料,Apache pig性能优化
NULL 博文链接:https://xiaolongfeixiang.iteye.com/blog/674109
apache2.2中文使用手册,apache2.2中文使用手册
Apache2 中文使用手册
《Apache2中文使用手册》
基于1.18版本整理了Apache Drill SQL中的常用函数
Apache Camel 开发使用指南中文版
猪-json 用于 Apache Pig 的 Mortar JSON 工具。... 使用 pig-json 优于 Pig 的内置 JsonStorage 的好处是 pig-json 读取任意 JSON 数据而无需元数据文件,而 Pig 内置的 JsonStorage 只能读取它使
05_Apache Hive DML语句与函数使用(1).sql
这是一个学习pig的极好的资料,通俗易懂
Apache中文手册免费下载Apache中文手册免费下载Apache中文手册免费下载Apache中文手册免费下载Apache中文手册免费下载Apache中文手册免费下载Apache中文手册免费下载Apache中文手册免费下载Apache中文手册免费下载...
apache2.2版本中文使用手册 .
从网上搜索而来,虽然不是自己总结,但把网上最好的总结都归列在内。