大数据之pig详解.pptx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

Pig详解;目标;Pig概述;Pig的用途;Pig的设计思想;Pig的运行模式-1;Pig的运行模式-2;Pig的运行模式-3;Pig的运行模式-4;Pig的运行模式-5;PigLatin;PigLatin——读写和检测操作符;PigLatin入门例子:

在Pig安装目录下有一个文件tutoria1/data/excite-small.log,其中的数据分为3列,中间用制表符分隔,第一列为用户ID,第二列为Unix时间戳,第三列则为查询记录。首先,从该文件的4500条记录中,选取一段样本如下。

3F8AAC2372F6941C 970916091301 bac

3F8AAC2372F6941C 970916091354 bloodalcoholcontent

3F8AAC2372F6941C 970916091425

3F8AAC2372F6941C 970916091545

3F8AAC2372F6941C 970916093448

3F8AAC2372F6941C 970916093544 breathalizers

3F8AAC2372F6941C 970916093551 breathalizers

3F8AAC2372F6941C 970916093642 breathalizers

3F8AAC2372F6941C 970916093724 minorsinpossesion

3F8AAC2372F6941C 970916093848 minorsinpossesion

3F8AAC2372F6941C 970916093904 mip

然后,在GruntShell中输入如下命令,将数据装载到一个称为log的别名中。

gruntlog=LOAD‘tutoria1/data/excite-small.Log’AS(user,time,query);

;LIMIT命令允许指定有多少元组(行)用于返回结果。本例中,如果要查看别名log的4个元组,则可使用以下命令。

grunt1mt=LIMITlog4;

gruntDUMP1mt;

返回结果如下。

2A9EABFB35F5B954 970916105432 +mdfoods+proteins

BEBD0C 970916001949 yahoochat

BEBD0C 970916001954 yahoochat

BEBD0C 970916003523 yahoochat

执行以下命令,完成统计每个用户发起的查询个数。

gruntlog=LOADtutorial/data/excite-small.logAS(user:chararray,time:long,query:chararray);

gruntgrpd=GROUPlogBYuser;

gruntcntd=FOREACHgrpdGENERATEgroup,COUNT(log);

gruntSTOREcntdINTOoutput;

部分统计结果如下。

002BB5A52580A8ED 18

005BD9CD3AC6BB38 18

00A08A54CD03EB95 3

011ACA65C2BF70B2 5

01500FAFE317B7C0 15

0158F8ACC570947D 3

018FBF6BFB213E68 1

019E9463F6695963 10

;PigLatin——数据类型和schema;3个复杂数据类型是元组(tuple)、包(bag)和映射表(map)。;PigLatin——表达式和函数;Pig也支持函数,Pig的内置函数及用法如下:

avg用法——avg(expression):计算单列值的平均数,忽略NULL值,在使用groupall或group单列后可使用。

contact用法-——contact(expression1,expression2):将两个字段的值拼接为一个字符串,如果其中一个为NULL,则结果用NULL表示。

count用法——count(expression):统计在一个bag中所有元素的数量,不包含NULL值统计,同时需要以group的支持为前提。

diff用法——diff(expression1,expression2),比较一个元组中的两个fields集合的差异性,与Linux或Python里面的diff函数类似。

IsEmpty用法——IsEmpty(expression):判断一个bag或map是否为空(没有数据),可以用在filter数据过滤中。

max用法——max(expr

文档评论(0)

xm1640396464 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档