Apache Pig学习笔记(二)

栏目: Apache · 发布时间: 7年前

内容简介:Apache Pig学习笔记(二)
Apache 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脚本

想了解更多有关电商互联网公司的搜索技术和大数据技术的使用,请欢迎扫码关注微信公众号:我是攻城师(woshigcs)

本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!

Apache Pig学习笔记(二)

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

思考的技术

思考的技术

[日]大前研一 / 刘锦秀、谢育容 / 中信出版社 / 2010-11 / 32.00元

思路决定出路,没有了思路,也就没有了出路。 在充满危机与冒险的当下,我们缺乏的不是技巧而是揭发事务本质的动力和好奇心,缺少怀疑一切的心态和对固有模式的怠惰。 大前研一凭借他30多年的管理咨询经验,为我们提供了一种全新的可借鉴的思考方式。 企业和个人惟有改变既有的思考模式,放弃对过去成功经验的迷恋,学习有创意的思考方法,方能找到正确的经营思路。一起来看看 《思考的技术》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器