详细解读大数据分析引擎Pig&PigLatin语句(二)

简介: 详细解读大数据分析引擎Pig&PigLatin语句(二)

九、使用PigLatin语句分析数据:


创建员工表:load后加载数据,using后指定分隔符,as后指定包结构


emp = load '/scott/emp.csv' using PigStorage(',') as(empno:int,ename:chararray,job:chararray,mgr:int,hiredate:chararray,sal:int,comm:int,deptno:int);
describe emp;


查看员工表:2


SQL:select * from emp;
PL:emp0 = foreach emp generate *;
dump emp0;


创建部门表:


dept = load '/scott/dept.csv' using PigStorage(',') as(deptno:int,dname:chararray,loc:chararray);


查看部门表:


SQL:select * from dept;
PL:dept0 = foreach dept generate *;
dump dept0;


查询员工号、员工名和薪水:


SQL:select empno,ename,sal from emp;
PL:emp1 = foreach emp generate empno,ename,sal;
dump emp1;


根据薪水对员工表排序:


SQL:select sal from emp order by sal;
PL:emp2 = order emp by sal;
dump emp2;


按照部门号对员工表分组并求每个部门中薪水的最大值:


SQL:select deptno,max(sal) from emp group by deptno;
PL:emp3 = group emp by deptno;
emp4 = foreach emp3 generate group,MAX(emp.sal);
dump emp4;


查看10、20、30号部门的员工


SQL:select * from emp where deptno=10;
select * from emp where deptno=20;
select * from emp where deptno=30;
PL:emp5 = filter emp by deptno==10;
dump emp5;
emp6 = filter emp by deptno==20;
dump emp6;
emp7 = filter emp by deptno==30;
dump emp7;


多表查询,查询员工名和部门名:


SQL:select emp.ename,dept.dname from emp,dept where emp.deptno=dept.deptno;
PL:emp8 = join emp by deptno,dept by deptno
emp9 = foreach emp8 generate emp::ename,dept::dname;
dump emp9;


内连接:


C = join A by id,B by id;


外连接:


左外连接:C = join A by id left outer,B by id; #以左侧数据为基准,只返回左侧有的数据


右外连接:C = join A by id right outer,B by id;#以右侧数据为基准,只返回右侧有的数据


全外连接:C = join A by id full outer, B by id;#两侧数据都返回


联合查询,查询10号部门和20号部门的员工:


SQL:select * from emp where deptno=10
union
select * from dept where deptno=20;
PL: emp10 = filter emp by deptno==10;
emp11 = filter emp by deptno==20;
emp12 = union emp10,emp11;
实现wordcount;


加载数据


mydata = load '/output/data2.txt' as (line:chararray);


将字符串分割成单词


words = foreach mydata generate flatten(TOKENIZE(line)) as word;


对单词分组


grpd = group words by word;


统计每组中单词数量


cntd = foreach grpd generate group,COUNT(words);


结果显示到屏幕上


dump cntd;


结果存储到HDFS上


store cntd into '/pig';



相关文章
|
SQL 存储 分布式计算
详细解读大数据分析引擎Pig&PigLatin语句(一)
详细解读大数据分析引擎Pig&PigLatin语句(一)
274 0
|
SQL 分布式计算 大数据
详细解读大数据分析引擎Pig&PigLatin语句
欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! Pig 一、Pig的介绍: Pig由Yahoo开发,主要应用于数据分析,Twitter公司大量使用Pig处理海量数据,Pig之所以是数据分析引擎,是因为Pig相当于一个翻译器,将PigLatin语句翻译成MapReduce程序(只有在执行dump和store命令时才会翻译成MapReduce程序),而PigLatin语句是一种用于处理大规模数据的脚本语言。
1398 0
|
2月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
147 14
|
4月前
|
数据采集 分布式计算 DataWorks
ODPS在某公共数据项目上的实践
本项目基于公共数据定义及ODPS与DataWorks技术,构建一体化智能化数据平台,涵盖数据目录、归集、治理、共享与开放六大目标。通过十大子系统实现全流程管理,强化数据安全与流通,提升业务效率与决策能力,助力数字化改革。
130 4
|
3月前
|
机器学习/深度学习 运维 监控
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
运维不怕事多,就怕没数据——用大数据喂饱你的运维策略
120 0
|
4月前
|
分布式计算 DataWorks 数据处理
在数据浪潮中前行:记录一次我与ODPS的实践、思考与展望
本文详细介绍了在 AI 时代背景下,如何利用阿里云 ODPS 平台(尤其是 MaxCompute)进行分布式多模态数据处理的实践过程。内容涵盖技术架构解析、完整操作流程、实际部署步骤以及未来发展方向,同时结合 CSDN 博文深入探讨了多模态数据处理的技术挑战与创新路径,为企业提供高效、低成本的大规模数据处理方案。
265 3
|
4月前
|
SQL 人工智能 分布式计算
ODPS:数据浪潮中的成长与突围
本文讲述了作者在大数据浪潮中,通过引入阿里云ODPS体系(包括MaxCompute、DataWorks、Hologres)解决数据处理瓶颈、实现业务突破与个人成长的故事。从被海量数据困扰到构建“离线+实时”数据架构,ODPS不仅提升了数据处理效率,更推动了技术能力与业务影响力的双重跃迁。
|
2月前
|
传感器 人工智能 监控
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
数据下田,庄稼不“瞎种”——聊聊大数据如何帮农业提效
123 14
|
26天前
|
传感器 人工智能 监控
拔俗多模态跨尺度大数据AI分析平台:让复杂数据“开口说话”的智能引擎
在数字化时代,多模态跨尺度大数据AI分析平台应运而生,打破数据孤岛,融合图像、文本、视频等多源信息,贯通微观与宏观尺度,实现智能诊断、预测与决策,广泛应用于医疗、制造、金融等领域,推动AI从“看懂”到“会思考”的跃迁。

热门文章

最新文章