主要整理了一下,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脚本
想了解更多有关电商互联网公司的搜索技术和大数据技术的使用,请欢迎扫码关注微信公众号:我是攻城师(woshigcs)
本公众号的内容是有关搜索和大数据技术和互联网等方面内容的分享,也是一个温馨的技术互动交流的小家园,有什么问题随时都可以留言,欢迎大家来访!
分享到:
相关推荐
Learn to use Apache Pig to develop lightweight big data applications easily and quickly. This book shows you many optimization techniques and covers every context where Pig is used in big data ...
Beginning Apache Pig: Big Data Processing Made Easy English | 29 Dec. 2016 | ISBN: 1484223365 | 300 Pages | PDF | 4.9 MB Learn to use Apache Pig to develop lightweight big data applications easily ...
apache pig 基础及应用,urldecode row_number web日志分析 根据 用户行为 做出 简易的 相似度 判断。
TutorialsPoint Apache Pig 介绍.epub
apache的学习笔记
Apache cxf 学习笔记.pdfApache cxf 学习笔记.pdf
NULL 博文链接:https://tangmingjie2009.iteye.com/blog/2036903
APACHE BIRT图表学习笔记,APACHE BIRT图表学习笔记
Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)Apache Mina Server 2.0中文参考手册V1.0,Apache Mina2.0学习笔记(修订版)
linux_Apache学习笔记,linux_Apache学习笔记的常归配置方法
Apache Pig的性能优化.pdf
Apache cxf 学习笔记,供大家参考
分享嘉宾:李尤(智联招聘 高级工程师) 分享内容:天讲的主要题目就是Hadoop的应用。我们有两块,一块是日志分析。还有一块是简单的应用。
这个是我学的apache mina2.0学习笔记的实例
Hadoop 2012 大数据大会 的资料,Apache pig性能优化
版权声明:可以任意转载,转载时请务必以...我个人感觉Apache的设计充分体现了模块化设计的优势,通过在动态模块加载(DSO)模式下的安装,任何子应用模块都可以通过配置文件的简单修改进行积木式的灵活配置。安装的过
这是一个学习pig的极好的资料,通俗易懂
Apache的Mina2.0学习笔记,对应学习用java做通讯程序的有帮助
Apache kylin 环境搭建笔记,包括自带sample的加载和简单测试。