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学习笔记(二)

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

查看所有标签

猜你喜欢:

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

Java语言程序设计

Java语言程序设计

(美) Y. Daniel Liang / 李娜 / 机械工业出版社 / 2011-6 / 75.00元

本书是Java语言的经典教材,多年来畅销不衰。本书全面整合了Java 6的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等内容。此外,本书还全面且深入地覆盖了一些高级主题,包括算法和数据结构、多线程、网络、国际化、高级GUI等内容。 本书中文版由《Java语言程序设计:基础篇》和《Java语......一起来看看 《Java语言程序设计》 这本书的介绍吧!

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

UNIX 时间戳转换

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具