Apache Pig学习笔记(二)

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

内容简介:1,保留关键字:-- A assert, and, any, all, arrange, as, asc, AVG-- B bag, BinStorage, by, bytearray, BIGINTEGER, BIGDECIMAL
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学习笔记(二)

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

查看所有标签

猜你喜欢:

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

阿里巴巴

阿里巴巴

邓肯·克拉克 (Duncan Clark) / 中信出版社 / 2016-8-22 / CNY 58.00

阿里巴巴的故事在中国已是家喻户晓,马云的个人魅力和非凡的商业头脑也早已声名远扬。而一千个人眼中会有一千个不一样的马云, 一个外国投资人、咨询顾问眼中的马云和阿里巴巴会是什么样的?1994年就来到中国,阿里巴巴创业早期的咨询顾问克拉克先生将阿里巴巴帝国崛起过程中他的见闻、感触和思考结合深入的访谈、研究写成了这本书。 书中既可以读到阿里巴巴艰辛的创业历程、惊心动魄的商业对垒,也不乏有趣好玩儿的背......一起来看看 《阿里巴巴》 这本书的介绍吧!

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

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

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

在线 XML 格式化压缩工具