《大数据技术与应用》课程实验报告|week12|实验8|Pig——高级编程环境|验证评估函数

目录

 一、实验内容

二、实验目的

三、实验设备

四、实验步骤

步骤一

步骤二

步骤三

步骤四

步骤五

步骤六

步骤七

步骤八

步骤九

步骤十

步骤十一

步骤十二

步骤十三

步骤十四

步骤十五

步骤十六

五、实验结果

六、实验小结


  一、实验内容

验证19.5节中的Pig评估函数的示例。

二、实验目的

在MapReduce框架中,程序需要被转换为一系列的Map和Reduce阶段。可是,这不是数据分析者熟悉的编程模式。因此,为了对这个鸿沟搭建一座桥梁,建筑在Hadoop之上的、被称为Pig(猪)的抽象运用而生。Pig是一种高级编程语言,用于分析大型数据集。

三、实验设备

PC

四、实验步骤

步骤一

读入/home/biadmin/SampleDate/books.csv文件;

books=load '/home/biadmin/sampleData/books.csv' using PigStorage(',') 

as(bknum:int,author:chararray,book:chararray,pubyear:int);

步骤二

读入/home/biadmin/SampleData/reviews.csv文件

reviews=load '/home/biadmin/sampleData/reviews.csv' using PigStorage(',') 

as (bknum:int,reviewer:chararray,stars:int);

步骤三

用pubyear对books关系分组。

bookInYear = group books by pubyear;

也可以用Dump命令给出清单:

步骤四

计算每年出版的书的数量。

bookPerYear = foreach bookInYear generate group,COUNT($1);

 dump bookPerYear;

步骤五

计算每本书的平均星级。先在bknmu上连接books关系和reviews关系。

booksAndReviews = join books by bknum,reviews by bknum;

同样用dump命令列出清单:dump booksAndReviews;

步骤六

投影一个新的关系,只能处理书名和每个阅读者给出的评价星级。

booksAndStars = foreach booksAndReviews generate book,stars; 

步骤七

用book tilele对booksAndStars关系分组。

starsInBooks = group booksAndStars by book;

步骤八

查看starsInBooks的模式,代码:describe starsInBooks;

步骤九

使用FOREACH运算符。访问book title很容易,使用booksAndStars来引用stars。代码:

avgStars = foreach starsInBooks generate group,AVG(booksAndStars.stars);

dump avgStars;

步骤十

 把星级所具有的值作为双精度的值如果不是想要的结果。在计算平均时,我们不能给出半颗星或三分之一颗星,我们也许想让它保留整数。为此,将平均值转换为int(整数)。代码:

avgStars = foreach starsInBooks generate group,(int)AVG(booksAndStars.stars);

dump avgStars;

想要筛选出四星级的评级,可用具有嵌套块的FOREACH运算符。

代码:

bogusAvgStars = for each starsInBooks {filteredStars = filter 

booksAndStars bystars > 3;

numStars = filteredStars.stars;

generate group,(int)AVG(numStars);}

dump bogusAvgStars

步骤十一

 使用EXPLAIN运算符,可以获得并理解Pig如何要解决一个特殊的MapReduce问题。explain bogusAvgStars; 

步骤十二

快速查看从Grunt shell运行的hdfs命令。如果没有Grunt shell,在本地模式下打开,执行命令:./pig -x local;

步骤十三

 使用FSShell命令从Grunt shell中列出当前目录。执行命令:fs -ls; 

步骤十四

 从Pig的本地模式下退出。执行命令:quit; 

步骤十五

在MapReduce模式中调用Grunt shell。请记住它是默认模式。./pig;

步骤十六

 执行FSShell并列出目录。fs -ls;所列的数据在hdfs中。  

五、实验结果

如果想要在本地运行,执行命令:./pig -x local

根据前三个步骤我们可以得到分组结果

每年出版书的数量:

平均星级:

六、实验小结

Pig由两个组件构成:

(1)Pig Latin,编程语言

(2)运行环境,用来运行PigLatin程序。

Pig有两个执行模式: 

(1)本地模式。在该模式中,Pig运行在单个的JVM上并使用本地文件系统。这个模式仅适用于用Pig分析小数据集。

(2)MapReduce模式。在此模式下,以PigLatin编写的查询被转换为MapReduce作业,并在Hadoop集群(集群可能是伪分布式或完全分布式)上运行。具有完全分布式集群的MapReduce模式用于运行较大规模的数据集。

如果Hadoop没有运行,使用桌面上的图标启动Hadoop及其组件。右击桌面并选择Open in Terminal,进入命令行。我们既可以选择从Grunt shell也可以选择从Pig脚本来运行Pig命令。无论哪种情况,都需要变动到Pig bin目录并在本地模式下启动shell运行。  


(于 2023-06-05 15:31:45 发布)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/353898.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

微信Mac版客户端(支持发布朋友圈)v3.1.5(18841)正式版

微信Mac版客户端全新功能升级!!不仅支持查看朋友圈,还能发布朋友圈啦!!!微信正式版支持对朋友圈进行互动和点 赞等操作,还可以浏览朋友圈相册,这是一款运行在OS X上的 社交聊天工具&…

怒肝半月!Python 学习路线+资源大汇总

Python 学习路线 by 鱼皮。 原创不易,请勿抄袭,违者必究! 大家好,我是鱼皮,肝了十天左右的 Python 学习路线终于来了~ 和之前一样,在看路线前,建议大家先通过以下视频了解几个问题:…

计算机考研,这样选学校才是正解

写了一篇《启舰:对计算机专业来说学历真的重要吗?》,一时间N多同学咨询自身情况要不要考研,眼看有点Hold不住,索性又出了一篇《启舰:计算机专业有必要考研吗?》,结果,又有…

【035期】面试官问:什么是耦合?解耦合的方法有哪几种?

>>号外:关注“Java精选”公众号,回复“面试资料”,免费领取资料!“Java精选面试题”小程序,3000 道面试题在线刷,最新、最全 Java 面试题! 在项目的开发过程中,我们经常强调项…

国内 Android 手机典型勒索软件详情分析(附解锁方法)

事件说明 2017年2月13-17日,RSA Conference 2017 信息安全大会在美国旧金山Moscone中心隆重举行。大会第一天就是一系列关于Ransomware(勒索软件)的议题,而在刚刚过去的2016年,“MongDB数据库网络勒索事件”&#xff0…

Java后端入行看这 做软件园最靓的仔

16k长文以失败学角度分享普通本科二线Java后端入行经历 前言入行趣事■ 实习前■ 趣事分享1 —— 找实习■ 开启一周面试狂潮1、皮包单休公司2、养老级银行政务3、培训机构4、狼性外包公司5、教授带学生6、初创外包7、阿里旗下外包8、总结9、毕业后 ■ 趣事分享2 —— 给你加50…

QQ空间的汉字转拼音代码

html <!DOCTYPE html> <html lang"en" xmlns"http://www.w3.org/1999/xhtml"> <head><meta charset"utf-8" /><title>QQ空间的汉字转拼音代码</title><script id"jquery_183" type"text/…

android路由表位置,知乎上已获千赞,已拿到offer

前言 从2010年开始Android市场开始需要大量的Android开发人员&#xff0c;招聘市场上也开始大量招Android开发人员&#xff0c;大量java开发者开始学习Android开发&#xff0c;招聘市场面试要求上只要有一定java语法基础&#xff0c;都很容易应聘上Android开发的岗位&#xff…

FasterRunner安装教程(Windows版)

FasterRunner安装教程&#xff08;Windows版&#xff09; 原创 幼儿园二园长 发布于2019-05-10 17:02:59 阅读数 499 收藏 更新于2019-05-10 17:04:23 分类专栏&#xff1a; 接口 工具 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&…

时间管理专题_软件篇02

本文属非商业用途&#xff0c;文中借鉴他人处均已注明出处&#xff0c;若侵犯原作权益&#xff0c;请联系删除&#xff0c;谢谢 接上一篇 时间管理专题_软件篇01 #NOTE要点:神文&#xff0c;从目标管理到时间统计完整流程&#xff0c;作者亲历 要点&#xff1a;此文过猛&…

为什么我强烈建议大家使用 Linux 开发?

点击上方“码农突围”&#xff0c;马上关注 这里是码农充电第一站&#xff0c;回复“666”&#xff0c;获取一份专属大礼包 真爱&#xff0c;请设置“星标”或点个“在看” 作者&#xff1a;夏日浅笑 cnblogs.com/summertime-wu/p/11140052.html Linux 能用吗&#xff1f; 我身…

微信Mac免费版:在Mac上也能浏览朋友圈、浏览相册和发布朋友圈

微信Mac版客户端全新功能升级&#xff01;&#xff01;不仅支持查看朋友圈&#xff0c;还能发布朋友圈啦&#xff01;&#xff01;&#xff01;微信正式版支持对朋友圈进行互动和点 赞等操作&#xff0c;还可以浏览朋友圈相册&#xff0c;这是一款运行在OS X上的 社交聊天工具&…

支持查看朋友圈的微信Mac版客户端

微信Mac版客户端终于支持查看朋友圈啦&#xff01;&#xff01;&#xff01;微信正式版支持对朋友圈进行互动和点 赞等操作&#xff0c;但目前仅限于浏览&#xff0c;这是一款运行在OS X上的 社交聊天工具&#xff0c;微信mac版支持跨通信运营商&#xff0c;跨操作系统平台通过…

电脑、手机软件推荐(多角度良心推荐)

本文从电脑和手机出发 推荐以下9大方向软件 1、杀毒软件 2、浏览器 3、聊天软件 4、视频软件 5、音乐软件 6、网盘软件 7、解压软件 8、购物软件 9、直播软件 为什么要推荐&#xff1f; 因为不想大家被流氓软件或者是低质量软件烦恼 1、杀毒软件 手机&#xff1a;推荐手机系…

【墨墨英语单词库免费开源无偿分享】小学、初中、高中、大学四六级专四专八、考研、托福、雅思等词书文本大合集

还在愁没有自己想要的词书&#xff1f;这不&#xff0c;我都给你准备好了&#xff1a; 纯英文txt源词库 带list分类txt词库大全 带中文释义excel词库 这些词书呢&#xff0c;是知乎上的一位大神用爬虫把墨墨背单词app的所有词库给爬取下来的&#xff0c; 而且无偿开源&…

华为手机助手安卓版_西瓜助手安卓版下载-西瓜助手app手机版下载v1.6.3[系统工具]...

西瓜助手安卓版是一款功能强大的手机系统工具软件。西瓜助手app官方版内置了海量在网络上热门的游戏语音包任用户免费使用,同时软件还支持应用多开。西瓜助手app支持手机运动步数修改、机型伪装、模拟语音等各种实用功能,工作、生活、娱乐等都很适用。 西瓜助手软件介绍 …

删库跑路 mini 版!程序员写代码给自己转账21 万!判了~

点击上方“Java精选”&#xff0c;选择“设为星标” 别问别人为什么&#xff0c;多问自己凭什么&#xff01; 下方有惊喜留言必回&#xff0c;有问必答&#xff01; 每天 08:15 更新文章&#xff0c;每天进步一点点... 要说这两年比较火的职业&#xff0c;程序员无疑是其中之一…

软件测试八股文整理

http和https的区别 https协议需要到CA&#xff08;Certificate Authority&#xff0c;证书颁发机构&#xff09;申请证书&#xff0c;一般免费证书较少&#xff0c;因而需要一定费用。http是超文本传输协议&#xff0c;信息是明文传输&#xff0c;https则是具有安全性的ssl加密…

Mac/iOS开发工程师 常用的软件 史上最全版

注意&#xff1a;长期更新&#xff0c;有“【任❤️何】”MAC软件需求(包括游戏、插件、图形设计、开发、系统、办公、网络等等)&#xff0c;留言或者私信或者加我微信&#xff0c;我会发给你破解版&#xff01;哥们不谈钱&#xff0c;伤肝&#xff01;全部免费发送&#xff01…

Linux下进程及其进程地址空间以及一些进程的控制函数

目录 什么是进程&#xff1f;进程的状态Linux下进程的状态 进程地址空间什么是进程地址空间为什么需要进程地址空间&#xff1f; 进程控制进程控制函数forkwait/waitpid 进程等待进程替换&#xff0c;进程替换函数exe 今天我们来分享一下Linux下的进程和进程地址空间以及一些进…