- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Pig是一个用来处理大规模数据集的平台,和Google的.ppt
Pig是一个用来处理大规模数据集的平台,和Google的Sawzall类似,由Yahoo!贡献给Apache。 MapReduce的查询框架虽然主要是Map和Reduce两个函数,但是用户从编写程序到在集群中部署、运行,仍然要花费不少时间。 Pig可以简化MapReduce任务的开发,提高在Hadoop集群上进行数据处理的方便程度。 Pig的基本框架 Cluster Pig Latin MapReduce Pig Latin:Pig专用的语言,是类似于SQL的面向数据流的语言。能够对数据进行排序、过滤、求和、分组、关联等功能。 MapReduce:当需要处理海量数据时,先用Pig Latin语言编写Pig Latin程序,然后在Pig中执行 Pig Latin程序。 Pig把用户编写的Pig Latin程序编译成MapReduce作业,上传到集群中运行。 MapReduce虽然是现在处理海量数据的主要方法,但是对于数据处理它仍然存在不足之处。 固定的数据流处理过程 其他操作需要用户自己动手编写 Join, filter, projection, aggregates, sorting, distinct 语义被隐藏在map和reduce函数中,使其难以维护、扩展或者被优化 M R Pig Latin则能很好的解决上述问题。它是一种类SQL的面向数据流的语言。它提供了对数据的排序、过滤、分组、求和、关联等功能,同时也运行用户自定义一些函数,称为UDF(user-defined functions)。 与编写MapReduce程序相比,Pig Latin程序可以大大减少代码量。Pig可以自动对集群进行分配和回收,并且自动的对MapReduce程序进行优化,用户可以将精力放在程序功能的实现上。 数据模型 Field:存放一个原子的数据。 Tuple:Field的序列,其中的每一个Field可以是任何一种数据类型 Bag:Tuple的集合,每个Tuple可以包含不同数目不同类型的Field。如下图 Map:一组键值对的组合,一个关系中的键值对必须唯一。 Pig Latin 的数据模型是可以嵌套的 (‘lucy’, ‘1234’) (‘jack’, (‘iPod’, ‘apple’)) 数据类型 类型 说明 示例 int 有符号的32位整数 127 long 有符号的64位整数 127L float 32位浮点数 3.14F double 64位浮点数 3.14 chararray UTF-8格式的字符数组 Hello World bytearray Byte数组 运算符 算术运算符 操作 符号 说明 相加 + 相减 - 相乘 * 相除 / 取模 % 对整型有效(int, long) Bincond ?: 条件?成立时的值;不成立时的值 运算符 运算符举例 gruntA = LOAD ‘data.txt’ AS (f1:int, f2:int, B:bag{T:tuple(t1:int, t2:int)}); gruntDUMP A; (3, 2, {(1, 7), (3, 5)}) (3, 3, {(1, 7), (3, 5)}) (3, 5, {(1, 7,), (3, 5), (4, 6)}) 执行下面的操作: gruntX = FOREACH A GENERATE f2, (f2 == 2 ? 1 : COUNT(B)); gruntDUMP X; (2, 1) (3, 2L) (5, 3L) 运算符 比较运算符 操作 符号 说明 相等 == 不等 != 小于 大于 小于或等于 = 大于或等于 = 模式匹配 matches Matches左边是表达式,右边是字符串常量 常用操作 操作名称 功能 LOAD 载入待处理的数据 FOREACH 逐行处理Tuple FILTER 过滤不满足条件的Tuple DUMP 将结果打印到屏幕 STORE 将结果保存到文件 实例分析:在每个category中找到最常 访问的10个页面 Visits Url Info Url Category PageRank News 0.9 News 0.8 Photos 0.7 Sports 0.9 User Url Time Amy 8:00 Amy 10:00 Amy 10:05 Fred 12:00 Lo
文档评论(0)