今天分享一个小案例,介绍下需求,判断某个网站的前缀,并给其打上特定的标签值:
一个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)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!
分享到:
相关推荐
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日志分析 根据 用户行为 做出 简易的 相似度 判断。
根据给定的文件信息,我们可以深入探讨Apache Pig的性能优化及其在大数据处理中的角色与优势。首先,让我们从Apache Pig的基本概念入手。 ### Apache Pig概述 Apache Pig是一种高生产力的数据流语言和执行框架,...
TutorialsPoint Apache Pig 介绍.epub
分享嘉宾:李尤(智联招聘 高级工程师) 分享内容:天讲的主要题目就是Hadoop的应用。我们有两块,一块是日志分析。还有一块是简单的应用。
相较于直接使用Hadoop MapReduce编程,Pig提供了更快的开发速度和更少的代码量,因为Pig Latin抽象了底层的复杂性,允许用户专注于数据流和处理逻辑,而不需要处理Map和Reduce函数的细节。此外,Pig会自动优化常见的...
Apache Pig是一个开源的平台,它为用户提供了一种高级查询语言,即Pig Latin,用于处理大规模数据集。Pig Latin抽象了MapReduce编程模型,从而使得数据分析师能够轻松地编写数据转换脚本,而无需深入Java编程。Pig...
3. **启动与管理Apache**:在系统服务中启动和停止Apache,例如在Linux上使用`systemctl start apache2`和`systemctl stop apache2`命令。还可以使用`apachectl`或`httpd`命令进行更复杂的控制,如重启、重载配置等...
NULL 博文链接:https://xiaolongfeixiang.iteye.com/blog/674109
在查询中使用这些日期函数时,需要注意不同函数产生的结果可能有不同的时间范围,确保与字段类型匹配是至关重要的。例如,在MongoDB插件中,日期字段通常是TIMESTAMP类型,因此在比较时,可以不转换字段值,但参数值...
Apache Hadoop 中的 Pig 是一个强大的分布式数据分析引擎,专门设计用于处理大规模数据集。Pig 构建在 Hadoop 平台上,通过提供一个名为 Pig Latin 的高级抽象语言,简化了在 Hadoop 上进行数据分析的过程。Pig ...
描述中的"使用Apache Pig的Pig Latin生成并运行Apache Storm拓扑"进一步强调了这个过程:首先,我们使用Pig Latin编写脚本,这些脚本定义了数据处理的各个步骤;然后,这些脚本会被转换为Storm的拓扑结构,最后在...
猪-json 用于 Apache Pig 的 Mortar JSON 工具。... 使用 pig-json 优于 Pig 的内置 JsonStorage 的好处是 pig-json 读取任意 JSON 数据而无需元数据文件,而 Pig 内置的 JsonStorage 只能读取它使
用户在下载后,可以使用 `tar` 命令解压并安装,以在本地环境中使用 Apache Pig 0.15.0。 标签“pig-0.15.0”是该资源的标识符,方便用户搜索和区分不同版本的 Pig。在实际应用中,选择合适的版本至关重要,因为...
05_Apache Hive DML语句与函数使用(1).sql
在本使用说明文档中,我们将深入探讨Apache Atlas的功能、安装配置、操作指南以及如何在实际项目中应用。 1. **Apache Atlas的基本概念** - 元数据:记录数据的数据,如数据的来源、含义、格式等。 - 实体:...
在 Apache Tomcat 中,还有很多高级使用技巧,例如配置虚拟主机、配置 SSL 加密、配置负载均衡等。这些技巧可以帮助开发者更好地使用 Apache Tomcat,提高 Web 应用程序的性能和安全性。 本文为读者提供了一个详细...
总的来说,"tpch-pig"项目提供了一种使用Apache Pig处理TPC-H基准测试的方法,这对于那些在大数据环境中使用Pig进行数据分析的开发者和研究人员来说非常有用。它展示了如何利用Pig的灵活性和易用性来处理复杂的...