pig介绍剖析.docx

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

Apache Pig简介与实践Apache Pig是一个用来分析大数据集的平台,它由两部分组成:一部分是用于表达数据分析程序的高级脚本语言,另一部分是用于评估分析程序的基本工具。目前来看,Pig主要用于离线数据的批量处理应用场景,但是随着Pig的发展处理数据的速度会不断地提升,这可能依赖于Pig底层的执行引擎。比如,Pig通过指定执行模式,可以使用Hadoop的MapReduce计算引擎来实现数据处理,也可以使用基于Tez的计算引擎来实现(Tez是为了绕开MapReduce多阶段Job写磁盘而设计的DAG计算引擎,性能应该比MapReduce要快),看到Pig未来的发展路线图,以后可能会基于Storm或Spark计算平台实现底层计算引擎,那样速度会有极大地提升。Pig安装与执行Pig安装非常简单,只需要下载Pig包,然后解压缩即可:在31机子上已经下载了pig-0.12.0.tar.gzPIG配置zxp@cfs01:~ vi ./.bashrcPig的两种模式本地模式本地模式主要是基于本地文件系统,比较适合调试脚本使用。进入本地模式执行如下命令:1pig -x?localMapReduce模式MapReduce模式基于Hadoop,数据存储在HDFS上,它基于运行于YARN之上的MapReduce进行处理。进入MapReduce运行模式执行如下命令:1pig -x mapreduce一般,我们的数据都是存储在HDFS上的,使用该模式能够充分利用Hadoop集群的计算能力数据类型Pig的数据类型可以分为2类,分别为简单类型和复杂类型。简单类型包括:int、long、float、double、chararray、bytearray、boolean、datetime、biginteger、bigdecimal。复杂类型包括:tuple、bag、map。这里对特别的数据类型,解释说明一下:chararray相当于字符串String;bytearray相当于字节数组;tuple是一个有序的字段的集合,可以理解为元组,例如(3090018, ‘Android’, 76);bag是tuple的集合,例如{(3090018, ‘Android’, 76), (3090019, ‘iOS’, 172)};map是键值对的集合,例如[name#Jeff Stone, age#28, healthy index#195.58]。基本操作符算数操作符(Arithmetic Operators)包括:+、-、*、/、%、?:、CASE WHEN THEN ELSE END。布尔操作符(Boolean Operators)包括:AND、OR、IN、NOT。类型转换操作符(Cast Operators):使用圆括号包含类型名,作用于一个字段,例如(int)age、(map[])、(chararray)COUNT($2)、(tuple(chararray,int,map[]))name_age_scores等等。比较操作符(Comparison Operators)包括:==、!=、、、=、=、matches。其中,matches比较操作符使用Java的Pattern进行匹配来比较,例如user_name matches ‘[a-n]{3,12}’。类型构造操作符(Type Construction Operators):可以创建复杂类型的数据,tuple使用(),map使用[],bag使用{},例如FOREACH users GENERATE (name, age, address)。解引用操作符(Dereference Operators):解引用主要是针对集合类型tuple、bag、map,从集合中拿到对应字段的值。比如对于tuple,定义类型t=tuple(t1:int,t2:int,t3:int),则我要获取字段t1和t3的值,一种方式可以通过t.t1和t.t3得到,也可以通过t.$0和t.$2获取到关系操作符操作符语法说明ASSERTASSERT alias BY expression [, message];断言:判定某个字段的值的条件为trueCOGROUPalias = COGROUP alias { ALL | BY expression} [, alias ALL | BY expression …] [USING collected | merge] [PARTITION BY partitioner] [PARALLEL n];数据分组,与GROUP相同,但是至多支持127个关系CROSSalias = CROSS alias, alias [, alias …] [PARTITION BY partitioner] [PARALL

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档