【大数据处理技术】实验6

article/2025/10/3 13:42:44

目录

1. 安装pig大数据分析工具

1.1 pig介绍

1.1.1 Pig简介

1.1.2 Apache Pig 与 MapReduce

1.1.3 Apache Pig 与 SQL

1.1.4 Apache Pig 与 Hive

1.1.5 Apache Pig的应用

1.2 pig下载及安装

1.3 配置环境变量

1.4 pig启动

2. pig工具使用方法

2.1 pig工具简单解析

2.2 pig基本操作介绍

3.  实验6

3.1 启动

3.2 编辑


1. 安装pig大数据分析工具

1.1 pig介绍

1.1.1 Pig简介

Pig是一种数据流语言和运行环境,常用于检索和分析数据量较大的数据集。Pig包括两部分:一是用于描述数据流的语言,称为Pig Latin;二是用于运行Pig Latin程序的执行环境。

1.1.2 Apache Pig 与 MapReduce

Pig

MapReduce

Apache Pig是一种数据流语言。

MapReduce是一种数据处理范例。

这是一种高级语言。

MapReduce是低级且严格的。

在Apache Pig中执行Join操作非常简单。

在MapReduce中,很难在数据集之间执行Join操作。

任何具有SQL基本知识的新手程序员都可以轻松地与Apache Pig一起工作。

使用MapReduce必须与Java接触。

Apache Pig使用多查询方法,从而在很大程度上减少了代码长度。

MapReduce将需要多近20倍的行数来执行同一任务。

无需编译。在执行时,每个Apache Pig运算符都会在内部转换为MapReduce作业。

MapReduce作业的编译过程很长。

1.1.3 Apache Pig 与 SQL

Pig

SQL

Pig Latin是一种程序语言。

SQL是一种声明性语言。

在Apache Pig中,模式是可选的。我们可以存储数据而无需设计架构(值存储为$01,$02等)。

模式在SQL中是必需的。

Apache Pig中的数据模型是嵌套关系型。

SQL中使用的数据模型是扁平关系。

Apache Pig为查询优化提供了有限的机会。

SQL中查询优化的机会更多。

除了上述差异外,Apache Pig Latin-

·允许在管道中拆分。

·允许开发人员将数据存储在管道中的任何位置。

·宣布执行计划。

·提供操作员执行ETL(提取,转换和加载)功能。

1.1.4 Apache Pig 与 Hive

Apache Pig和Hive均用于创建MapReduce作业。在某些情况下,Hive以与Apache Pig相似的方式在HDFS上运行。在下表中,我们列出了一些使Apache Pig与Hive脱颖而出的重要方面。

Pig

Hive

Apache Pig使用一种称为Pig Latin的语言。它最初是由Yahoo创建的。

Hive使用一种称为HiveQL的语言。它最初是在Facebook上创建的。

Pig Latin是一种数据流语言。

HiveQL是查询处理语言。

Pig Latin是一种过程语言,适合流水线范例。

HiveQL是一种声明性语言。

Apache Pig可以处理结构化,非结构化和半结构化数据。

Hive主要用于结构化数据。

1.1.5 Apache Pig的应用

数据科学家通常使用Apache Pig来执行涉及即时处理和快速原型制作的任务。使用Apache Pig-

处理大量数据源,例如Web日志。

对搜索平台执行数据处理。

处理时间敏感的数据加载。

1.2 pig下载及安装

官网下载:Index of /apache/pig/pig-0.16.0

 解压安装

1.3 配置环境变量

vi ~/.bashrc

添加pig环境配置(根据实际安装位置)

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

Export PATH=$PATH:/usr/local/mongodb/bin

Export PIG_HOME=/media/liuhao/sda4/pig

Export PATH=$PIG_HOME/bin:$PATH

 

1.4 pig启动

启动Hadoop集群(略)

启动pig:./bin/pig

 

退出quit

2. pig工具使用方法

2.1 pig工具简单解析

Apache Pig具有以下功能

·丰富的运算符集 - 它提供许多运算符来执行诸如 join, sort, filer等操作。

·易于编程 - Pig Latin与SQL相似,如果您擅长SQL,则很容易编写Pig脚本。

·自动优化 - Apache Pig中的任务会自动优化其执行,因此程序员只需要专注于语言的语义。

·可扩展性 – 使用现有的运算符,用户可以开发自己的函数来读取,处理和写入数据。

·UDF的 – Pig提供了使用其他编程语言(例如Java)创建用户定义函数并将其调用或嵌入Pig脚本的功能。

·处理各种数据 - Apache Pig分析所有结构化和非结构化数据。它将结果存储在HDFS中。

2.2 pig基本操作介绍

(后续补充)

3.  实验6

3.1 启动

启动Hadoop

创建文件file6.txt,并上传到Hadoop集群

 启动pig

3.2 编辑 

Pig使用ls命令查看文件

--load文本的txt数据,并把每行作为一个文本;

--将每行数据,按指定的分隔符(这里使用的是空格)进行分割,并转为扁平结构  

--对单词分组

--统计每个单词出现的次数

--存储结果数据

 存储结果直接到目录里,即res.txt是一个目录

进入到存储的路径下,使用cat命令查看词频统计结果

 

【参考资料】

大数据篇-Pig简介及安装使用_第七行代码-商业新知

大数据分析工具Pig详细介绍_yz930618的博客-CSDN博客_大数据pig

Ubuntu安装pig-0.17.0 - 灰信网(软件开发博客聚合)

Pig的搭建和配置_不懂开发的程序猿的博客-CSDN博客_pig系统环境搭建


http://chatgpt.dhexx.cn/article/Qi6TUyCA.shtml

相关文章

【大数据处理技术】实验3

一、安装Eclipse 1.下载Eclipse(我使用Xftp传输的,大家可以直接在虚拟机中下载) 下载链接:https://www.eclipse.org/downloads/package 2.解压Eclipse 3.桌面显示Eclipse图标 在终端输入:cd /usr/share/application…

处理大数据需要哪些技术

大数据之所以能够从概念走向落地,说到底还是因为大数据处理技术的成熟,面对海量的数据,在有限的硬件条件下,以低成本满足大数据处理的各种实际需求。那么具体处理大数据需要哪些技术,今天我们来简单介绍一下大数据核心…

干货 | 大数据处理技术的总结与分析

一 、数据分析处理需求分类 1、事务型处理 在我们实际生活中,事务型数据处理需求非常常见,例如:淘宝网站交易系统、12306网站火车票交易系统、超市POS系统等都属于事务型数据处理系统。 这类系统数据处理特点包括以下几点: 一是事…

大数据技术介绍

为了方便大家梳理清楚大数据学习路线,本文从以下四个方面来介绍大数据技术: 大数据技术栈 大数据发展史 大数据应用 大数据开发岗位 一、大数据技术栈 之前有同事问我怎么转大数据开发,他在网上搜了一堆大数据相关的技术,但是不…

大数据时代:大数据处理技术及采集方法

在大数据时代,传统的大数据处理技术还管用吗? 大数据处理环节下的需求 大数据环节下的数据来源是非常多,而且类型也很多花样,存储和数据处理的需求量很大,对于数据展现也非常的高,并且很看重数据处理的高效性和可用…

大数据处理的关键技术有哪些?

数据关键技术涵盖数据存储、处理、应用等多方面的技术,根据大数据的处理过程,可将其分为大数据采集、大数据预处理、大数据存储及管理、大数据处理、大数据分析及挖掘、大数据展示等。 1、大数据采集技术 大数据采集技术是指通过 RFID 数据、传感器数据…

大数据处理关键技术主要有五种,具体指的是什么?

大数据技术 ,就是从各种类型的数据中快速获得有价值信息的技术。 大数据 领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。大数据处理关键技术一般包括:大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘、大数据展现和应用…

数据分析|SQL面试题集锦

https://zhuanlan.zhihu.com/p/136619982 https://www.cnblogs.com/diffrent/p/8854995.html 1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三 语文 81 张三 数学 75 李四 语文 76 李四 数学 90 王…

Sql面试50题 详解 持续更新

Sql面试50题 前言:此文章是根据【数据分析】- SQL面试50题 - 跟我一起打怪升级 一起成为数据科学家 学习整理而来,仅供复习参考。 建表与插入数据 --建立学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name VARCHAR(20) NOT NULL DEFAULT , s_bi…

大厂SQL面试题,连续时间问题

今天分享一个非常常考,同时也不太容易的sql题目类型,求连续时间问题。 这类题的核心是:分组排序,用时间减去排序,如果连续的话他们的差会是相同值 记住下面的表,按照提供的三步思路理清楚里面的数据逻辑&a…

经典Hive-SQL面试题及答案

目录 第一题 求分区累加值 第二题 UV和每个店铺访问量top3信息 Hive sql解答 第一题 求分区累加值 我们有如下的用户访问数据 userId visitDate visitCount u01 2017/1/21 5 u02 2017/1/23 6 u03 2017/1/22 8 u04 2017/1/20 3 u01 2017/1/23 6 u01 2017/2/21 8 U02 2017/1/…

吊打面试官之SQL面试题30问及答案

经典SQL30问一: 编写查询,查找表中的行总数。编写查询,消除表结果中的重复记录。编写查询,获取t_employee表中designation字段前3个字符。查询t_employee表,合并输出Designation和Department两个字段的内容。如果使用union和union all合并4条SQL子查询,union会有多少次被用来去…

pl sql面试题_PL SQL面试问答

pl sql面试题 If you have worked on Oracle database and going for an interview, you should go through PL SQL interview questions and answers. 如果您曾经在Oracle数据库上工作过并且要进行面试,则应该阅读PL SQL面试问题和答案。 PLSQL stands for Procedural Langu…

常见的sql面试题

本章是SQL面试题的汇总,之后还会不断更新,文章的思维导图如下: 1.SQL初级查询 单表查询 -- 查询学生表中有几名学生的信息.显示学号 select distinct 学号 from student;查询条件 -- 查询学生表中性别为女的学生所有信息 SELECT * FROM student WHERE 性别女;结果排序 -- …

美团/得物sql面试题

解题思路: 1.找出uid不同的但是买过pro_id相同的商品的用户 [自连接] selecta.uid,b.pro_id fromtb_order ajoin tb_order bon a.pro_id b.pro_id where a.uid <> b.uid -- 找出uid不同的但是pro_id相同的商品2.对uid和pro_id进行分组 selecta.uid,a.pro_id fromtb…

Spark SQL面试题

1.RDD DataFrame DataSet的区别 &#xff08;1&#xff09; 三者之间的关系 DataFrame是特殊的RDD(它相当于RDDschema&#xff0c;即RDD表信息)&#xff0c;可以将他看成数据库中的一张数据表&#xff0c;但是只知道这个"表"中的各个字段&#xff0c;不知道各个字段…

SQL常见面试题

SQL常见面试题关系型数据库&#xff08;SQL&#xff09;非关系型数据库&#xff08;NoSQL&#xff09;数据库三大范式主键与外键CHAR与VRCHAR数据类型临时表数据库函数、触发过程与存储器 SQL语句SQL语言分类DROP、TRUNCATE、DELETE的区别sum、count(\*)、count(1)、count(colu…

常见的SQL面试题:经典50例

SQL基础知识整理 select 查询结果&#xff0c;如: [学号,平均成绩&#xff1a;组函数avg(成绩)] from 从哪张表中查找数据&#xff0c;如:[涉及到成绩&#xff1a;成绩表score] where 查询条件&#xff0c;如:[b.课程号0003 and b.成绩>80] group by 分组&#xff0c;如:…

5个必考的大厂SQL面试题

学Python的同学&#xff0c;SQL也一定要学习&#xff0c;SQL几乎是每个数据岗的必备题目&#xff0c;下面分享几个常见的大厂SQL习题。 &#xff08;1&#xff09;找出连续7天登陆&#xff0c;连续30天登陆的用户&#xff08;小红书笔试&#xff0c;电信云面试&#xff09;&am…

7 大开源数据库利弊全对比

1、CUBRID CUBRID 是一个很好的免费开源选择&#xff0c;专门针对 Web 应用程序进行优化&#xff0c;当复杂的 Web 服务需要处理大量数据并生成巨大的并发请求时&#xff0c;CUBRID 非常有用。这个解决方案是用 C 写的。 优点&#xff1a; 多粒度锁定 在线备份 用于开发语言…