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

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

Pig


一、Pig的介绍:


Pig由Yahoo开发,主要应用于数据分析,Twitter公司大量使用Pig处理海量数据,Pig之所以是数据分析引擎,是因为Pig相当于一个翻译器,将PigLatin语句翻译成MapReduce程序(只有在执行dump和store命令时才会翻译成MapReduce程序),而PigLatin语句是一种用于处理大规模数据的脚本语言。


二、Pig与Hive的相同与区别:


相同:


1、Hive和Pig都是数据分析引擎,除此之外,还有Spark中的Spark SQL和Cloudera开发的Impala等。


2、Hive和Pig都简化了MapReduce程序的开发。


不同:


1、Hive作为数据分析引擎有一定限制,只能分析结构化数据,因为Hive的数据模型是表结构,虽然没有数据存储引擎,需要用户在创建表时指定分隔符(默认以Tab键作为分隔符):row format delimited field terminated by ‘,’,而Pig的数据模型是包结构,由tuple和field组成,因此可以分析任意类型的数据。


2、Hive使用的是sql语句分析数据,sql语句是一种声明式语言,Pig使用的是PigLatin语句分析数据,PigLatin语句是一种过程式语言/脚本语句。


3、Hive中的内置函数不用大写,Pig中的内置函数必须要大写。


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


sql语句:select deptno,max(sal) from emp group by deptno;


PigLatin语句:emp1 = group emp by deptno;


emp2 = foreach emp1 generate group,MAX(emp.sal)
dump emp2;


(PigLatin语句注意事项:等号前后要有空格)


4、Hive保存元信息,因此数据模型不用重建,而Pig不保存元信息,因此数据模型需要重建。


5、由于PigLatin语句是脚本语言,因此Hive执行速度比Pig更快。


6、 由于Hive的数据模型是表结构,因此Hive是先创建表,后加载数据,而Pig的数据模型是包结构,Pig在加载数据的同时创建包。


举例:创建一份员工表


sql语句:


1、创建表:


create table emp(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal int,
comm int,
deptno int
)row format delimited field terminated by ',';


2、加载HDFS中的数据:


load data inpath '/scott/emp.csv' into table emp;


PigLatin语句:


加载数据的同时创建包:load后加载数据,using后指定分隔符,as后指定包结构


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


三、Hive数据模型和Pig数据模型的差别:


1、Hive的数据模型是表,表由行和列组成,表不可以嵌套,Pig的数据模型是包,包由tuple和field组成,包可以嵌套。


2、表中每一行的列完全相同,包中每一行的列可以不相同,可以动态增加。


四、Pig的安装和配置:


1、安装pig:tar -zxvf pig-0.17.0.tar.gz -C ~/traing


2、配置PIG_HOME环境变量:


export PIG_HOME=/root/training/pig-0.17.0
export PATH=$PIG_HOME/bin:$PATH


五、Pig的安装模式:


1、本地模式:访问本地主机,pig相当于本地的客户端。


2、集群模式:访问Hadoop集群,pig相当于Hadoop的客户端。


注:1、集群模式需要配置PIG_CLASSPATH环境变量,用于连接到Hadoop上:


export PIG_CLASSPATH=/root/training/hadoop-2.7.3/etc/hadoop


2、启动pig的集群模式前,需要先启动historyserver,因为pig在hadoop上执行任务后需要与historyserver通信,解析执行日志确定任务执行是否成功:


mr-jobhistory-daemon.sh start historyserver


六、Pig的常用命令:操作HDFS


ls、cd、cat、mkdir、pwd、copyFromLocal(上传)、copyToLocal(下载)、register、define等。


七、操作Pig:


1、命令行:pig提供了一个shell终端与用户进行交互,用户可以进行增删改查操作。


启动pig命令行模式,进入本地模式:pig -x local


启动pig命令行模式,进入集群模式:pig - x mapredcue/pig


(pig没有API可以操作)


八、常用的PigLatin语句:


load:加载数据


foreach:逐行扫描


generate:提取列


filter:过滤


distinct:去重


order by:排序


group by:分组


join:多表查询


union:联合查询


dump:把结果输出到屏幕上


store:把结果保存到HDFS上


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