文档章节

Apache Pig学习笔记(二)

九劫散仙
 九劫散仙
发布于 2015/02/13 19:45
字数 1238
阅读 141
收藏 1
点赞 0
评论 0

 
主要整理了一下,pig里面的一些关键词的含义和用法,pig虽然是一种以数据流处理为核心的框架,但数据库的大部分关键词和操作,在pig里面基本上都能找到对应的函数,非常灵活与简洁,春节前的最后一篇文章了,祝大家春节快乐! 
1,保留关键字: 
-- A assert, and, any, all, arrange, as, asc, AVG 
-- B bag, BinStorage, by, bytearray, BIGINTEGER, BIGDECIMAL 
-- C cache, CASE, cat, cd, chararray, cogroup, CONCAT, copyFromLocal, copyToLocal, COUNT, cp, cross 
-- D datetime, %declare, %default, define, dense, desc, describe, DIFF, distinct, double, du, dump 
-- E e, E, eval, exec, explain 
-- F f, F, filter, flatten, float, foreach, full 
-- G generate, group 
-- H help 
-- I if, illustrate, import, inner, input, int, into, is 
-- J join 
-- K kill 
-- L l, L, left, limit, load, long, ls 
-- M map, matches, MAX, MIN, mkdir, mv 
-- N not, null 
-- O onschema, or, order, outer, output 
-- P parallel, pig, PigDump, PigStorage, pwd 
-- Q quit 
-- R register, returns, right, rm, rmf, rollup, run 
-- S sample, set, ship, SIZE, split, stderr, stdin, stdout, store, stream, SUM 
-- T TextLoader, TOKENIZE, through, tuple 
-- U union, using 
-- V, W, X, Y, Z Void 
2,大小写敏感,别名大小写敏感,关键字大小写都可以 例如,load,group,foreach与LOAD,GROUP,FOREACH是等价的 
3,别名定义(首位字符必须为字母,其他位置可以是字母,数字,下划线) 
4,集合类型 
Bags ,类似table,可以包含多个row 
Tuples,类似一行行row,可以有多个field 
Fields,具体的数据 
5,列名引用,在关系数据库中我们可以使用列名来定位到某一行数据的某个字段的值,在JDBC中,我们既可以通过列名引用,也可以通过索引下标引用,在pig里,也支持这两种引用,下标引用需要加上$0,$1这样的数字标识。 
6,数据类型 
(基本类型) 
Int:有符号32位整数 
Long:有符号64位整数 
Float:32位单精度 
Double:64位单精度 
Chararray:Java里面的字符串类型,必须是UTF-8编码 
Bytearray:blob字节类型 
Boolean:布尔类型 
Datetime:日期类型 
Biginteger:Java Bigingteger 
Bigdecimal:Java BigDecimal 
(集合类型) 
Tuple:一个有序的字段值集合,类似Java里面的List 
Bag:Tuple的集合,类似Java里面的Collection集合超级接口 
Map:Java里面的Map,K和V,直接使用#号分开,引用时需要加上#号 
7,运算符: 
(1) 比较运算符==,!=,<,>,>=,<= 
(2) 比较运算符matches,适合字符串,支持正则 
(3) 算术运算符+,-,*,/,%,?:,CASE 
(4) Null运算符is not null ,is null 
(5) 集合类型引用符号tuple(.),map(#) 
(6) 关系运算符cogroup,group,join 
(7) 函数count_star,sum,min,max,count,avg,concat,size 
8, 多数据源join时,别名区分,使用A::name,B::name 
9, fallten可以将一个集合类型,或嵌套的类型,给扁平化成一行,看下面例子 
B={(a,b,c),(b,b,c)} 
FLATTEN(B)之后 
a,b,c,b,b,c就成为一行数据了 
10,cogroup,多表分组使用 
11,cross,两个数据源链接,会产生笛卡尔集 
12,distinct,去重,与关系型数据库不同的是,不能对单个field去重,必须是一个row,如果你想对单filed去重,那么就需要先把这个filed,单独提取出来,然后在distinct 
13,filter,过滤,类似数据库的where条件,返回一个boolean值。 
14,foreach,迭代,抽取一列,或几列的数据, 
15,group,分组,类似数据库的group 
16,partition by,同等hadoop中Partition组件 
17,join,分内外连接,与关系型数据库类似,在hadoop中又分不同的连接方式:复制连接,合并连接,skewed连接等 
18,limit,限制结果集返回行数,与mysql中的limit关键字类似 
19,load,pig特有关键词,负责从一个指定的路径加载数据源,路径可以使用通配符与hadoop的路径通配符保持一致 
20,mapreduce,在pig中,以MR的方式执行一个jar包 
21,order by 与关系型数据库的order类似 
22,rank,给一个集合,生成序号,类似for循环时的索引自增 
23,sample,采样器,能从指定的数据集中随机抽取指定的记录数 
24,split,可以按条件拆分一个大的数据集,生成几个不同的小数据集 
25,store,pig里面的存储结果的函数,可以将一个集合以指定的存储方式,存储到指定的地方 
26,stream,提供了以流的方式可以在pig脚本中,与其他的编程语言交互,比如将pig处理的中间结果,传给python,perl,或者shell等等 
27,union,类似数据的union,合并两个结果集为一个结果集 
28,register,UDF中,使用此关键词注册我们的组件,可能是一个jar包,也可能是一个python文件 
29,define,给UDF的引用定义一个别名 
30,import,在一个pig脚本中,使用imprt关键词引入另外一个pig脚本 

© 著作权归作者所有

共有 人打赏支持
九劫散仙
粉丝 261
博文 174
码字总数 189625
作品 0
海淀
玩转大数据系列之Apache Pig高级技能之函数编程(六)

原创不易,转载请务必注明,原创地址,谢谢配合! http://my.oschina.net/u/1027043/blog Pig系列的学习文档,希望对大家有用,感谢关注散仙! Apache Pig的前世今生 Apache Pig如何自定义UDF...

九劫散仙 ⋅ 2015/03/18 ⋅ 0

Apache Pig 学习笔记

1.Pig安装 目前最新稳定版为pig-0.12.1,下载解压到/opt/tools/目录下。 由于pig是基于hadoop的上层应用,所以需要先部署好hadoop集群。对于hadoop-0.23.0以上的版本,pig虽然也已经支持,但...

voyage1314 ⋅ 2014/05/09 ⋅ 0

Hadoop、Pig、Hive、Storm、NoSQL 学习资源收集【Updating】

(一)hadoop 相关安装部署 1、hadoop在windows cygwin下的部署: http://lib.open-open.com/view/1333428291655 http://blog.csdn.net/ruby97/article/details/7423088 http://blog.csdn.n......

xrzs ⋅ 2013/06/25 ⋅ 3

Apache Pig和Solr问题笔记(一)

记录下最近两天散仙在工作中遇到的有关Pig0.12.0和Solr4.10.2一些问题,总共有3个,如下: (1)问题一: 如何Pig中使用ASCII和十六进制(hexadecimal)的分隔符进行加载,和切分数据? 注意...

九劫散仙 ⋅ 2015/04/02 ⋅ 0

如何给Apache Pig自定义UDF函数?

近日由于工作所需,需要使用到Pig来分析线上的搜索日志数据,散仙本打算使用hive来分析的,但由于种种原因,没有用成,而Pig(pig0.12-cdh)散仙一直没有接触过,所以只能临阵磨枪了,花了两...

九劫散仙 ⋅ 2014/12/31 ⋅ 0

Hadoop家族学习路线图

权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[+] 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增...

_Mr_Computer_ ⋅ 2016/07/13 ⋅ 0

Apache Pig 概述

什么是Apache Pig? Apache Pig是MapReduce的一个抽象。它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流。Pig通常与 Hadoop 一起使用;我们可以使用Apache Pig在Hadoop中执行...

h8b6pk7m7r8 ⋅ 2017/11/25 ⋅ 0

Hadoop家族学习路线图(转)

Hadoop家族学习路线图 Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN,...

冯辉 ⋅ 2016/11/03 ⋅ 0

玩转大数据系列之Apache Pig如何与Apache Solr集成(二)

散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程。 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷贝至本...

九劫散仙 ⋅ 2015/03/06 ⋅ 0

Pig安装及本地模式测试,体验

Pig是Apache的一个开源项目,用于简化MapReduce的开发。研究了一段时间,略有心得。系废话不多说,我们直接步入实际测试。 Pig的运行有两种模式,本地单击模式和集群模式。我目前只是测试学习...

震秦 ⋅ 2013/04/14 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

内存障碍: 软件黑客的硬件视图

此文为笔者近日有幸看到的一则关于计算机底层内存障碍的学术论文,并翻译(机译)而来[自认为翻译的还行],若读者想要英文原版的论文话,给我留言,我发给你。 内存障碍: 软件黑客的硬件视图...

Romane ⋅ 29分钟前 ⋅ 0

SpringCloud 微服务 (七) 服务通信 Feign

壹 继续第(六)篇RestTemplate篇 做到现在,本机上已经有注册中心: eureka, 服务:client、order、product 继续在order中实现通信向product服务,使用Feign方式 下面记录学习和遇到的问题 贰 or...

___大侠 ⋅ 46分钟前 ⋅ 0

001. 深入JVM学习—Java运行流程

1. Java运行流程图 2. Java运行时数据区 3. Java虚拟机栈 栈内存是线程私有的,其生命周期和线程相同; 虚拟机栈描述的是Java方法执行的内存模型:执行一个方法时会产生一个栈帧随后将其保存...

影狼 ⋅ 今天 ⋅ 0

gitee、github上issue标签方案

目录 [TOC] issue生命周期 st=>start: 开始e=>end: 结束op0=>operation: 新建issueop1=>operation: 评审issueop2=>operation: 任务负责人执行任务cond1=>condition: 是否通过?op3=>o......

lovewinner ⋅ 今天 ⋅ 0

浅谈mysql的索引设计原则以及常见索引的区别

索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索...

屌丝男神 ⋅ 今天 ⋅ 0

String,StringBuilder,StringBuffer三者的区别

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是, 1.执行速度 在这方面运行速度快慢为:StringBuilder(线程不安全,可变) > StringBuffer...

时刻在奔跑 ⋅ 今天 ⋅ 0

java以太坊开发 - web3j使用钱包进行转账

首先载入钱包,然后利用账户凭证操作受控交易Transfer进行转账: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/Credentials credentials = Wallet......

以太坊教程 ⋅ 今天 ⋅ 0

Oracle全文检索配置与实践

Oracle全文检索配置与实践

微小宝 ⋅ 今天 ⋅ 0

mysql的分区和分表

1,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一...

梦梦阁 ⋅ 今天 ⋅ 0

exception.ZuulException: Forwarding error

错误日志 com.netflix.zuul.exception.ZuulException: Forwarding error Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: xxx timed-out and no fallback available. Ca......

jack_peng ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部