Pig load 用法举例】的更多相关文章

users = load '/users.data' using PigStorage() as (name:chararray, age:int, address:chararray);   load 'xx':     1)xx可以是文件,也可以是文件夹.如果是文件夹,则文件夹下的所有文件(包括子文件夹)都作为输入文件.     2)xx可以是匹配字符,参考Hadoop的globStatushttp://hadoop.apache.org/docs/current/api/org/apach…
jnd = join a by f1, b by f2;   join操作默认的是内连接,只有两边都匹配才会保留   需要用null补位的那边需要知道它的模式: 如果是左外连接,需要知道右边的数据集的模式,不匹配的字段用null补位 如果是右外连接,需要知道左边的数据集的模式,不匹配的字段用null补位 如果是全外连接,需要知道两边的数据集的模式,不匹配的字段用null补位   触发reduce阶段   基本用法 a = load 'input1'; b = load 'input2'; jnd…
    group语句可以把具有相同键值的数据聚合在一起,与SQL中的group操作有着本质的区别,在SQL中group by字句创建的组必须直接注入一个或多个聚合函数.在Pig Latin中group和聚合函数之间没有直接的关系.     group关键字正如它字面所表达的:将包含了特定的键所对应的值的所有记录封装到一个bag中,之后,用户可以将这个结果传递给一个聚合函数或者使用它做其他一些处理.       触发reduce阶段   数据文件内容如下: [hadoop@vm1 ~]$ cat…
some = sample data 0.1   遍历整个数据集,获取指定比例的行数的数据,获取的数据不确定,条数也不准确.   内部重写为filter data by random() <= 0.1     抽取100行数据 data = load 'data'; grpd = group data all; sums = foreach grpd generate COUNT(data) as c; some = sample data 100/(double)sums.c;  …
lmt = limit data 10;   只获取指定条数的数据,不能保证每次得到的结果一致,先执行order再limit可以保证一致.   输入数据全部载入.   会触发reduce阶段   a = load 'a.txt'; b = group a all; c = foreach b generate COUNT(a) as sum; d = order a by $0; e = limit d c.sum/100;    …
dst = distinct data:   DISTINCT只能对整个记录(整行)去重,不能在字段级别去重.   触发reduce阶段   data = load 'data'; distinct data;  …
foreach:一行一行的遍历数据,处理一行的数据,然后返回一个tuple. users = load '/users.data';   1)别名引用 f = foreach users generate name, age;   2)位置引用 f = foreach users generate $0, $1; 3)字段区间 .. 从name字段开始到最后一个字段 f = foreach users generate name.. 从第一个字段开始到age字段 f = foreach user…
store:将数据存储到HDFS等文件系统里   将数据保存到/data目录 store data into '/data'; 以逗号为分隔符 store data into '/data' using PigStorage(',');  …
filter:过滤数据,只有符合特定条件的数据才会被保留下来,然后进入下一个数据流.   1)等值比较 filter data by $0 == 1 filter data by $0 != 1   2)字符串 正则匹配  JAVA的正则表达式 字符串以CM开头 filter data by $0 matches 'CM.*'; 字符串包含CM filter data by $0 matches '.*CM.*'; 3)not filter data by not $0==1; filter d…
c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1) 不能直接改变元素值,因为那样会打乱原本正确的顺序,要改变元素值必须先删除旧元素,则插入新元素 2) 不提供直接存取元素的任何操作函数,只能通过迭代器进行间接存取,而且从迭代器角度来看,元素值是常数 3) 元素比较动作只能用于型别相同的容器(即元素和排序准则必须相同) set模板原型://Key为…