`
weitao1026
  • 浏览: 995010 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

判断某个网站的前缀,并给其打上特定的标签值:

一个java代码例子如下:

Java代码
  1. public String  getTag(){  
  2.     //url文本  
  3.     String url="http://www.baidu.com.cn";  
  4.     //标签值  
  5.     String tags=null;  
  6.     if(url.startsWith("http://www.baidu")){  
  7.         tags="1";  
  8.     }else if(url.startsWith("http://www.dhx")){  
  9.         tags="2";  
  10.     }else{  
  11.         tags="0";  
  12.     }  
  13.     return url;  
  14. }  
    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中匹配任何字符的正则式时.*
第三个是替换后的内容


例子数据:


Java代码 复制代码 收藏代码
  1. 1,2,3  
  2. 2,1,3  
  3. 6,7,1  
  4. 1,4,4  
  5. 121,45,100  
  6. 100,23,12  
  7. 600,12,50  
  8. 4,1,2  
  9. http://www.baidu.com,1,2  
  10. http://www.video.baidu.com,1,2  
  11. http://www.souhu.com.cn,1,2  
  12. http://www.dh.com,1,2  
  13. http://www.es.dh.com,1,2  
  14. http://www.baidu.com,1,2  
  15. http://www.baidu.com,1,2  
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脚本如下:


Java代码 复制代码 收藏代码
  1. a = load '/test' using PigStorage(',');  
  2. --其他特殊字符需要转义 最后的.*代表,替换所有内容为指定内容  
  3. a = foreach a generate  REPLACE($0,'^http:\\/\\/www\\.baidu.*','百度') , $1 ;  
  4. --多次替换可执行多个foreach过滤  
  5. a = foreach a generate REPLACE($0,'^1$','一') , $1 ;   
  6.   
  7. dump a;  
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;




执行结果如下:

Java代码 复制代码 收藏代码
  1. (一,2)  
  2. (2,1)  
  3. (6,7)  
  4. (一,4)  
  5. (121,45)  
  6. (100,23)  
  7. (600,12)  
  8. (4,1)  
  9. (百度,1)  
  10. (http://www.video.baidu.com,1)  
  11. (http://www.souhu.com.cn,1)  
  12. (http://www.dh.com,1)  
  13. (http://www.es.dh.com,1)  
  14. (百度,1)  
  15. (百度,1)  
(一,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)




这种方式,适合逻辑不是特别复杂的情况下使用,总体来看,比较简单方便易懂

分享到:
评论

相关推荐

    pig udf 函数(urldecode row_number tomap)

    pig udf,实现了 urldecode、 row_number、 tomap.版本使用cdh4.1.2,如果需要在别的版本中使用,请替换工程文件中的两个jar包,对应您需要的版本。

    Pig:Sublime Text 2 和 3 中的 Apache Pig 支持包

    支持大多数 Pig 函数和关键字的语法突出显示和命令完成。 Build (Super+B) 将在“pig -x local”下运行脚本。 问题 错误行突出显示不起作用。 目前一些次要的关键字和功能。 安装 简单的 难的 更改为 Sublime ...

    Pig编程指南

    《Pig编程指南》不仅为初学者讲解ApachePig的基础知识,同时也向有一定使用经验的高级用户介绍更加综合全面的Pig重要特性,如PigLatin脚本语言、控制台shell交互命令以及用于对Pig进行拓展的用户自定义函数(UDF)等。...

    apache pig 基础及应用

    apache pig 基础及应用,urldecode row_number web日志分析 根据 用户行为 做出 简易的 相似度 判断。

    GA程序(适应度函数+主函数).rar_GA主程序_JUUS_ga适应度函数_pig11i_遗传算法GA

    利用遗传算法求解函数的最值,函数y=x+10sin(5x)+7cos(4x),存在多个极值点。

    基于REST接口的PIG的oink.zip

    Oink 是基于 Servlet 的 Pig ,提供以下功能:注册/注销/查看 Pig 脚本注册/注销/查看 jar 文件 (用于自定义 UDF 函数)执行 Pig 工作查看 Pig 工作的数据/状态取消一个 Pig 工作 标签:oink

    精品课程推荐 大数据与云计算教程课件 优质大数据课程 21.Pig模式与函数(共64页).pptx

    大数据与云计算教程课件 优质大数据课程 21.Pig模式与函数(共64页).pptx 大数据与云计算教程课件 优质大数据课程 22.Zookeeper(共28页).pptx 大数据与云计算教程课件 优质大数据课程 23.Zookeeper服务(共47页)...

    pig-json:用于 Apache Pig 的 Mortar JSON 工具

    JsonLoader :用于任意 JSON 文件的 Pig 加载函数(不仅仅是 JsonStorage 生成的文件) FromJsonInferSchema :包装 JsonLoader 以将字符数组(字符串)字段中的 JSON 转换为 Map 的 Pig UDF。 推断输出的模式。 ...

    Pig-Latin-Translator:接收文本并将其翻译成Pig Latin

    猪拉丁语翻译器接收文本并将其翻译成Pig Latin

    spork:Apache Spark 上的 Pig

    基本信息有关 Pig 的最新信息,请访问我们的网站: 和我们的维基,在:入门要了解 Pig,请尝试 要构建和运行 Pig,请尝试和 要查看函数库,请尝试为项目做贡献我们欢迎所有贡献。 有关详细信息,请访问 。

    PigExtend:Apache Pig+MapReduce给LuceneSolrElasticSearch构建索引

    这个框架里面通过Pig的UDF函数封装了Store方法,只要Pig能读的任何数据源,我们都可以通过Store函数,将结果轻而易举的存储到我们的索引里面, ####使用步骤 (1)下载源码后,根据自己的业务情况,稍作修改,然后...

    改进型的BP神经网络拟合函数y=sin(x)

    BP神经网络的理论介绍,公式推演,以及通过拟合函数实例进行仿真模拟

    C语言piglatin转换

    C语言piglatin转换 从终端读入一行文本,并把这行文本中的英文转换成PigLatin,PigLatin是按照如下简单规则转换每个英文单词的一种自发明语言。

    pig_latin

    规格pigLatin函数采用称为短语的字符串pigLatin函数查看字符串中的一个或多个单词pigLatin函数查看每个单词以将其转换为Pig Latin pigLatin通过以下方式将每个单词转换为Pig Latin: 对于以元音开头的单词,请在结尾...

    Python实现Pig Latin小游戏实例代码

    函数:raw_input()用于输出一个字符串并等待键盘输入某字符串,最后以Enter(或Return)结束输入 original = raw_input("Enter a word:") print original 上述中,控制台会输出What’s your name?,并等待用户键盘...

Global site tag (gtag.js) - Google Analytics