运算符(使用本地模式)
1.LOAD运算符 LOAD ‘路径名’ USING PigStroage(‘分割符’) AS (表结构)
注 路径名如果是 本地模式,就是linux路径 若是mapreducer模式则是 hdfs路径 ,分割符默认是 ‘\t’
2.DUMP(查看关系中的数据是以元组的形式返回)
3.DESCRIBE 关系名
小结:以上三个操作,类似于将文件内容导入数据表中 ,包{}就相当于 一张表,元组()就相当于一条记录 ,元组中的每个字段相当于数据表中的每一列
4.STORE(将关系存到目标路径 一般是hdfs上)
这里mynba.txt 是个文件夹,就是Java执行 mapreduce程序是生成的文件
我们使用Pig的目的就是将一个 原始文件,最终生成一个关系(表),最后存入一个新的文件中
在生成关系的过程中 不可能只是简单的一个LOAD就完成的,在LOAD所生成的关系后往往要经过,一些字段的筛选,几个关系的结合,和关系的分组之后,才会得到想要的关系,因此接下来就是使用其他的运算符对关系进行处理。。。。。
过滤运算符
1.FILTER(继续以 nbastar那个关系为例吧)
我要筛选,号码大于11的(中文匹配暂时未解决 )
2.DISTINCT
去除重复数据
3.FOREACH GENERATE (select name,team from A )
分组
导入文件看看是啥样子的
结构
查询每个球队 所有球员号码
连接
语法:
自连接:新的关系 = JOIN 关系1 By 字段,关系1’ BY 字段; 关系1’和关系1相同
内连接:新的关系 = JOIN 关系1 By 字段 ,关系2 BY 字段
外连接:左外:新的关系 = JOIN 关系1 By 字段 LEFT OUTER,关系2 BY 字段
右外:新的关系 = JOIN 关系1 By 字段 RIGHT OUTER,关系2 BY 字段
全外:新的关系 = JOIN 关系1 By 字段 FULL OUTER,关系2 BY 字段
还有其他的 用法类似,最终生成的是关系 ====》》》》over
个人学习笔记,用于个人记录。。。。。。。