Apache Pig学习笔记(二)

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

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

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

查看所有标签

猜你喜欢:

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

孵化Twitter

孵化Twitter

[美]尼克·比尔顿(Nick Bilton) / 欧常智、张宇、单旖 / 浙江人民出版社 / 2014-1 / 49.90元

一个在挣扎中生存的博客平台Odeo,一小撮龙蛇混杂的无政府主义者员工,经历了怎样的涅槃,摇身一变,成为纽交所最闪耀的上市企业Twitter? 一个野心勃勃的农场小男孩,一个满身纹身的“无名氏“,一个爱开玩笑的外交家,一位害羞而又充满活力的极客,这四位各有特色的创始人如何从兢兢业业、每日劳作的工程师,成为了登上杂志封面、奥普拉秀和每日秀的富裕名人?而在Twitter日益茁壮成长的过程中,他们又......一起来看看 《孵化Twitter》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具