hadoop-pig学习笔记
A1 = LOAD '/luo/lzttxt01.txt' AS (col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double);
B1 = GROUP A1 BY (col2,col3,col4);
C1 = FOREACH B1 GENERATE FLATTEN(group),AVG(A1.col5),AVG(A1.col6); ---这里的A1指的是B1里的A1,B1中有若干个A1;
STORE C1 INTO '/output1';
A = LOAD '/luo/txt.txt' AS (col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double);
B = GROUP A ALL;
C = FOREACH B GENERATE COUNT(A.col2);
DUMP C;
A1 = LOAD '/lu/lzttxt01.txt' AS (col1:chararray,col2:int,col3:int,col4:int,col5:double,col6:double);
B1 = GROUP A1 BY (col2,col3,col4);
C1 = FOREACH B1 {D = DISTINCT A1.col6; GENERATE group ,COUNT(D);};
DUMP C1;
A = LOAD '/lu1/b01.txt' AS (col1:int,col2:int,col3:int,col4:chararray,col5:chararray);
B = STREAM A THROUGH `awk '{if($4=="=") print $1"\t"$2"\t"$3"\t9999\t"$5;else print $0}'`; -- STREAM .. THROUGH ..调用shell语句 当第四列为“=”号时,将其替换为9999,否则就按照原样输出这一行
DUMP B
若是aa.pig 方式的话文件要放在root本地:pig -x mapreduce /luo/aa.pig 执行 或是 pig -x local test.pig
A = LOAD '/lu1/a.txt' AS (acol1:chararray,acol2:int,acol3:int);
B = LOAD '/lu1/c.txt' AS (bol1:int,bol2:chararray,bol3:int);
C = COGROUP A BY acol1,B BY bol2; ---cogroup 可以按多个关系中的字段进行分组
DUMP C;
A = LOAD '/lzt02/aa01.txt' AS (a:int,b:int);
B = LOAD '/lzt02/aa02.txt' AS (c:int,d:int);
C = UNION A,B;
D = GROUP C BY $0;按第一列进行分组
E = FOREACH D GENERATE FLATTEN(group),SUM(C.$1); $1第二列
DUMP E;
A1 = LOAD '/lzt02/aa03.txt' AS (a11:int,b11:chararray); 符合"*//*.qq.com/*"
B1 = FILTER A1 BY b11 matches '.*//.*\\.qq\\.com/.*';
C1 = FILTER B1 BY (a11 matches('\\d'))
DUMP B1;
.表示任意字符, * 表示任意次数,\.是对.的转义 ,/就是表示/这个字符;注意在引号中\\.才是和正则中的\.的一致
正则中\d表示匹配数字,在引号中必须用'\\d'
1.定义的数据结构为元组
A = LOAD 'luo.txt' AS (T : tuple(col1:int,col2:int,col3:int,col4:chararray,col5:chararray)) --使用与数据是这种格式的(1,2,3,5,2,4)
2.
STORE A into '$output_dir' --使用参数
pig -param output_dir="/home/my_outdir" my_pig_script.pig
3.load 多个目录下的数据:
A = LOAD '/abc/201{0,1}'
4.两个整数相除,想得到整数和浮点数
整数:(float)(col1/col2) 浮点数: (float)col1/col2
5.substring
B = FOREACH A GENERATE SUBSTRING(date,0,4)
6.拼接concat
A = LOAD '1.txt' AS (col1:chararray,col2:int);
B = FOREACH A GENERATE CONCAT(col1,(chararray)col2) ----多个字段进行拼接时使用concat嵌套:concat(a,concat(b,c))
7.join的用法,求两个数据表中重合的个数
A = LOAD '/lzt02/aa01.txt' AS (a:int,b:int);
B = LOAD '/lzt02/aa02.txt' AS (c:int,d:int);
C = JOIN A BY a,B BY d;
D = DISTINCT C;
E = GROUP D ALL;
F = FOREACH E GENERATE COUNT(D)
8.使用三目运算符“?:”
B = FOREACH A GENERATE col1,((col2 is null)?-1 :col2),col3
或
A = LOAD '1.txt' AS (a:int,b:tuple(x:int,y:int)); ----适用于2,(3,5)这样的数据
B = FOREACH A GENERATE a,FLATEEN(b);
C = FOREACH B GENERATE group ,SUM(B.x) AS S;
D = FOREACH C GENERATE group,(s is null)?-1 :s
9. 在第一列的每种组合下,第二列为3和6的数据分别有多少条
A = LOAD '/lzt02/aa01.txt' AS (a:int,b:int);
B = GROUP A BY a;
C = FOREACH B {
D = FILTER A BY b==3; ##这里的A是B中的A
E = FILTER A BY b==6;
GENERATE group,count(D),count(E);
}
DUMP C;B
10. A = LOAD '/lzt02/aa01.txt' AS (a:int,b:int);
B = LOAD '/lzt02/aa02.txt' AS (c:int,d:int);
C = JOIN A BY a LEFT OUTER,B BY d; ----c中有两张表的全部字段 ,遵循left join 原则
D = DISTINCT C;
E = GROUP D ALL;
F = FOREACH E GENERATE COUNT(D)
11.A表中有,但是B表中没有的数据
A = LOAD '/lzt02/aa01.txt' AS (a1:int,b1:int);
B = LOAD '/lzt02/aa02.txt' AS (a1:int,b1:int);
C = JOIN A BY a1 left outer,B BY a1;
D = FILTER C BY (B::a1 is null);
E = FOREACH D GENERATE A::a1 AS a1,A::a2 AS a2;
DUMP E;
12.每种组合有多少个
1 9
2 4
1 9
2 4
A = LOAD '/lzt02/aa01.txt' AS (a1:int,b1:int);
B = GROUP A BY (a1,a2);
C = FOREACH B GENERATE group,COUNT(A);
13.一个字符串为null 与它为空不一定等价
B = FILTER A BY (a1 is not null AND (SIZE(a1)>0L));
14.统计一个字符串中包含的指定字符数()
B = STREAM A THROUGH `awk -F "luo" '{print NF-1}'` AS (column_count:int)
hadoop-pig学习笔记的更多相关文章
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Hadoop入门学习笔记---part1
随着毕业设计的进行,大学四年正式进入尾声.任你玩四年的大学的最后一次作业最后在激烈的选题中尘埃落定.无论选择了怎样的选题,无论最后的结果是怎样的,对于大学里面的这最后一份作业,也希望自己能够尽心尽力, ...
- Hadoop入门学习笔记(一)
Week2 学习笔记 Hadoop核心组件 Hadoop HDFS(分布式文件存储系统):解决海量数据存储 Hadoop YARN(集群资源管理和任务调度框架):解决资源任务调度 Hadoop Map ...
- Hadoop Oozie 学习笔记
Oozie是一个工作流引擎服务器,用于运行Hadoop Map/Reduce和Pig 任务工作流.同时Oozie还是一个Java Web程序,运行在Java Servlet容器中,如Tomcat. O ...
- Hadoop概括——学习笔记<一>
之前有幸在MOOC学院抽中小象学院hadoop体验课. 这是小象学院hadoop2.X概述第一章的笔记 第一章主要讲的是hadoop基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据 ...
- Hadoop入门学习笔记总结系列文章导航
一.为何要学习Hadoop? 这是一个信息爆炸的时代.经过数十年的积累,很多企业都聚集了大量的数据.这些数据也是企业的核心财富之一,怎样从累积的数据里寻找价值,变废为宝炼数成金成为当务之急.但数据增长 ...
- Hadoop概括——学习笔记<一>转
前言 第一章主要讲的是hadoop基础知识.老师讲的还是比较全面简单的,起码作为一个非专业码农以及数据库管理人员,也能狗大致了解其特点 首先是概括图(以hadoop2.0为例) 一.Hadoop基础 ...
- hadoop spark学习笔记
http://www.csdn.net/article/2015-06-08/2824889 hive:是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sq ...
随机推荐
- HackerRank - fibonacci-modified 【大数】
思路 用PYTHON 或 JAVA 干掉 AC代码 a, b, n = map(int, input().split()) for i in range (2, n, 1) : temp = b b ...
- sequence.c
/* * sequence.c */ #include <stdio.h> #include <memory.h> /* * SM3算法产生的哈希值大小(单位:字节) */ # ...
- JS 中 Date() 的其他操作集锦
好吧,这周完全是个业务型的程序猿了,明显地能感觉到洗头发时头皮都会有点疼,是秃顶的前兆. 算得上收获的就是有较多的接触到计算时间方面的事件...嗯,几个笔记分享一下 // 处理 /Date(" ...
- 使用bedtools的一个问题
问题:有两个平行测序样本,分别得到1.vcf和2.vcf两个文件,想知道这两个文件有多少个重合点. [wangjq@mgmt CHG029194]$ cat t1 chr1 10 10 chr1 11 ...
- centos 下安装python3.6.2
具体详情: http://www.cnblogs.com/vurtne-lu/p/7068521.html
- EXP-00008:遇到ORACLE错误904问题
案例情景--在一次Oracle 数据库导出时: C:\Documents and Settings\Administrator>exp lsxy/lsxy@lsxy_db file=E:\lsx ...
- Kubernetes Horizontal Pod Autoscaler
非常牛逼的技术,目前最新的版本支持众多的Feature HPA功能需要Heapster收集的CPU.内存等数据作为支撑 配置示例: apiVersion: autoscaling/v2beta1 ki ...
- Anton and School - 2 (组合数学)
题意:给你一串只有‘(’与‘)’的字符串,问你多少对括号,括号一定是左边一半的‘(’,右边一半是‘)’ )(()() 答案是:6 题解:枚举每个‘(’,此时设左括号左边有n个‘(’,它右边有m个‘ ...
- Codeforces Round #200 (Div. 1) BCD
为了锻炼个人能力奋力div1 为了不做原题从200开始 B 两个电线缠在一起了 能不能抓住两头一扯就给扯分开 很明显当len为odd的时候无解 当len为偶数的时候 可以任选一段长度为even的相同字 ...
- enter回车---焦点切换
$(function(){ $('.enter').bind('keydown',function(e){ var inputs = $('.enter_cash'); var key = e.whi ...