pig学习记录.doc

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

Pig简介 这节总结Pig语言的方方面面。 Pig是一种探索大规模数据集的脚本语言。 pig是在HDFS和MapReduce之上的数据流处理语言,它将数据流处理翻译成多个map和reduce函数,提供更高层次的抽象将程序员从具体的编 程中解放出来。 Pig包括两部分:用于描述数据流的语言,称为Pig Latin;和用于运行Pig Latin程序的执行环境。 Pig Latin程序有一系列的operation和transformation组成。每个操作或变换对输入进行数据处理,然后产生输出结果。这些操作整体上 描述了一个数据流。Pig内部,这些变换操作被转换成一系列的MapReduce作业。 Pig不适合所有的数据处理任务,和MapReduce一样,它是为数据批处理而设计的。如果只想查询大数据集中的一小部分数据,pig的实现 不会很好,因为它要扫描整个数据集或绝大部分。 1. Pig的运行 Pig是作为客户端运行的程序,你需要将其连接到本地Hadoop或者集群上。当安装Pig之后,有三种执行pig程序的方法:pig脚本 (将程序写入.pig文件中),Grunt(运行Pig命令的交互式shell环境)和嵌入式方式。 records = Load ‘sample.txt’ as (year:chararray, temperature:int, quality:int); filter_records = FILTER records BY temperature != 9999 AND quality == 0; group_records = GROUP filter_records BY year; max_temp = FOREACH group_records GENERATE group, MAX(filter_records.temperature); DUMP max_temp; 生成上面程序的创建的数据集结构: grunt ILLUSTRATE max_temp; Pig和数据库的比较: 1)Pig是数据流编程语言,而SQL是一种描述型编程语言。Pig是相对于输入的一步步操作,其中每一步都是对数据的一个简单的变换; 而SQL语句是一个约束的集合,这些约束结合在一起定义了输出。Pig更像RDBMS中的查询规划器。 2)RDBMS把数据存储在严格定义了模式的表内,但pig对数据的要求更宽松,可以在运行时定义模式,而且是可选的。 3)pig对复杂、嵌套数据结构的支持更强; 4)Pig不支持事务和索引,也不支持随机读和几十毫秒级别的查询,它是针对数据批量处理的。 5)Hive是介于Pig和RDBMS之间的系统。Hive以HDFS为存储,但是查询语言是基于SQL的,而且Hive要求所有数据必须存储在表中, 表必须有模式,而模式由Hive管理。但Hive允许为预先存在HDFS中的数据关联一个模式,因此数据加载步骤是可选的。 2 Pig Latin 程序有一系列语句构成。操作和命令是大小写无关的,而别名和函数名是大小写敏感的。 Pig处理多行语句时,在整个程序逻辑计划没有构造完毕前,pig并不处理数据。 Pig Latin关系操作 类型 操作 描述 加载与存储 LOAD 将数据从外部文件或其它存储中加载数据,存入关系 STORE 将一个关系存放到文件系统或其它存储中 DUMP 将关系打印到控制台 过滤 FILTER 从关系中删除不需要的行 DISTINCT 从关系中删除重复的行 FOREACH…GENERATE 对于集合的每个元素,生成或删除字段 STREAM 使用外部程序对关系进行变换 SAMPLE 从关系中随机取样 分组与连接 JOIN 连接两个或多个关系 COGROUP 在两个或多个关系中分组 GROUP 在一个关系中对数据分组 CROSS 获取两个或更多关系的乘积(叉乘) 排序 ORDER 根据一个或多个字段对某个关系进行排序 LIMIT 限制关系的元组个数 合并与分割 UNION 合并两个或多个关系 SPLIT 把某个关系切分成两个或多个关系 Pig Latin

文档评论(0)

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

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

1亿VIP精品文档

相关文档