第11章综合案例2影评大数据分析

这篇具有很好参考价值的文章主要介绍了第11章综合案例2影评大数据分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第11章综合案例2影评大数据分析

实验目的及要求

(1)现有电影、影评和用户信息3个数据文件,将对其进行大数据分析。

实验系统环境及版本

  1. Linux Ubuntu 20.04

  2. JDK1.8

  3. Hadoop3.1.0

  4. MySQL8.0.28

  5. Hive3.1.2

实验任务

  1. 评分次数最多的10部电影;

  2. 性别当中评分最高的10部电影;

  3. 一部电影各年龄段的平均影评;

  4. 评分最高的10部电影的平均评分;

  5. 好片最多年份的最好看电影Top10;

  6. 评分最高的10部Comedy类电影;

  7. 各种类型电影中评价最高的5部电影。

实验内容及步骤

创建一个数据仓库movie

hive> create database movie;

hive> use movie;

第11章综合案例2影评大数据分析

创建t_user表及导入数据

hive> create table t_user(userid bigint,sex string,age int,occupation string,zipcode string) row format delimited fields terminated by ‘\t’;

第11章综合案例2影评大数据分析

hive> load data local inpath ‘/opt/datas/user.txt’ into table t_user;

第11章综合案例2影评大数据分析

创建t_movie表及导入数据

hive> create table t_movie(movieid bigint,moviename string,movietype string) row format delimited fields terminated by ‘\t’;

hive> load data local inpath ‘/opt/datas/movie.txt’ into table t_movie;

第11章综合案例2影评大数据分析

创建t_ratings表及导入数据

hive> create table t_ratings(

> userid bigint,

> movieid bigint,

> rate double,

> times string)

> row format serde ‘org.apache.hadoop.hive.serde2.RegexSerDe’

> stored as textfile;

第11章综合案例2影评大数据分析

hive> load data local inpath “/opt/datas/ratings.dat” into table t_ratings;

第11章综合案例2影评大数据分析

基本信息查询

查询表t_user的记录总数:

hive> select count( *) from t_user;

第11章综合案例2影评大数据分析

查询表t_movie的记录总数:

hive> select count( *) from t_movie;
第11章综合案例2影评大数据分析

查询表t_rating的记录总数:

hive> select count( *) from t_ratings;

第11章综合案例2影评大数据分析

查看3个表文件的数据大小:

hdfs dfs -du -h /user/hive/warehouse/movie.db/t_movie

hdfs dfs -du -h /user/hive/warehouse/movie.db/t_user

hdfs dfs -du -h /user/hive/warehouse/movie.db/t_ratings
第11章综合案例2影评大数据分析

1.评分次数最多的10部电影

统计评分次数最多的10部电影,并给出评分次数(电影名、评分次数)。

按照电影名进行分组统计,求出每部电影的评分次数并按照评分次数降序排序,保存在表answer2中:

hive> create table answer2 as

> select a.moviename as moviename,count(a.moviename) as total from t_movie a join t_ratings b on a.movieid=b.movieid

> group by a.moviename order by total desc limit 10;

第11章综合案例2影评大数据分析

查询表answer2:

hive> select * from answer2;

第11章综合案例2影评大数据分析

2.性别当中评分最高的10部电影

统计男性、女性当中评分最高的10部电影(性别、电影名、影评分)。

(1)创建表answer3_F,保存女性当中评分最高的10部电影(性别、电影名、影评分),分组条件为评论次数大于或等于50次:

create table answer3_F as

select “F” as sex, c.moviename as name, avg(a.rate) as avgrate, count(c.moviename) as total

from t_ratings a join t_user b on a.userid=b.userid

join t_movie c on a.movieid=c.movieid

where b.sex=“F”

group by c.moviename

having total >= 50

order by avgrate desc

limit 10;

第11章综合案例2影评大数据分析

(2)查询表answer3_F:

select sex,name,round(avgrate,2),total from answer3_F;

第11章综合案例2影评大数据分析

(3)创建表answer3_M,保存男性当中评分最高的10部电影(性别、电影名、影评分),要求评论次数大于或等于50次:

create table answer3_M as

select “M” as sex, c.moviename as name, avg(a.rate) as avgrate, count(c.moviename) as total

from t_ratings a join t_user b on a.userid=b.userid

join t_movie c on a.movieid=c.movieid

where b.sex=“M”

group by c.moviename

having total >= 50

order by avgrate desc

limit 10;

第11章综合案例2影评大数据分析

(4)查询表answer3_M:

select sex,name,round(avgrate,2),total from answer3_M;

第11章综合案例2影评大数据分析

2.一部电影各年龄段的平均影评

统计movieid = 2116这部电影各年龄段的平均影评(年龄段、影评分)。

(1)对t_user和t_ratings表进行联合查询,用movieid=2116作为过滤条件,用年龄段作为分组条件,查询结果保存在表answer4中:

create table answer4 as

select a.age as age, avg(b.rate) as avgrate

from t_user a join t_ratings b on a.userid=b.userid

where b.movieid=2116

group by a.age;

第11章综合案例2影评大数据分析

(2)查询表answer4:

select age,round(avgrate,2) from answer4;

第11章综合案例2影评大数据分析

3.评分最高的10部电影的平均影评分

统计最喜欢看电影(影评次数最多)的那位女性评分最高的10部电影的平均影评分(观影者、电影名、影评分)。

(1)查询最喜欢看电影的那位女性,查询的字段分别为t_user.sex(性别)和count t_ratings.userid(观影次数):

select a.userid, count(a.userid) as total

from t_ratings a join t_user b on a.userid = b.userid

where b.sex=“F”

group by a.userid

order by total desc

limit 10;

第11章综合案例2影评大数据分析

(2)根据上述(1)中查询的女性userid作为Where过滤条件,以看过的电影的影评分rate作为排序条件进行排序,统计出评分最高的10部电影,并将查询结果保存在表answer5_B中:

create table answer5_B as

select a.movieid as movieid, a.rate as rate

from t_ratings a

where a.userid=1150

order by rate desc

limit 10;

第11章综合案例2影评大数据分析

(3)查询表answer5_B:

select * from answer5_B;

第11章综合案例2影评大数据分析

(4)统计上述(3)中10部电影的平均影评分,需要查询的字段分别为answer5_B.movieid(电影的ID)和t_ratings.rate(影评分),并将查询结果保存在表answer5_C中:

create table answer5_C as

select b.movieid as movieid, c.moviename as moviename, avg(b.rate) as avgrate

from answer5_B a join t_ratings b on a.movieid=b.movieid

join t_movie c on b.movieid=c.movieid

group by b.movieid,c.moviename;

第11章综合案例2影评大数据分析

(5)查询表answer5_C:

select movieid,moviename,round(avgrate,2) from answer5_C;

第11章综合案例2影评大数据分析

4.好片最多年份的最好看电影Top10

年份的最好看电影Top10。

(1)将t_rating和t_movie表进行联合查询,截取电影名中的上映年份,并将查询结果保存至表answer6_A:

create table answer6_A as select

a.movieid as movieid, a.moviename as moviename,

substr(a.moviename,-5,4) as years, avg(b.rate) as avgrate

from t_movie a join t_ratings b on a.movieid=b.movieid

group by a.movieid, a.moviename;
第11章综合案例2影评大数据分析

(2)查询表answer6_A:

select * from answer6_A;

第11章综合案例2影评大数据分析
第11章综合案例2影评大数据分析

(3)按照年份将answer6_A分组,评分≥4.0作为过滤条件,按照count(years)作为排序条件进行查询:

select years, count(years) as total

from answer6_A a

where avgrate >= 4.0

group by years

order by total desc

limit 10;

第11章综合案例2影评大数据分析

(4)按照years=1998作为Where过滤条件,按照评分作为排序条件进行查询,并保存至表answer6_C:

create table answer6_C as

select a.moviename as name, a.avgrate as rate

from answer6_A a

where a.years=1998

order by rate desc

limit 10;
第11章综合案例2影评大数据分析

(5)查询表answer6_C:

select name,round(rate,2) from answer6_C;

第11章综合案例2影评大数据分析

5.评分最高的10部Comedy类电影

统计1997年上映的电影中评分最高的10部Comedy类电影。

(1)将answer6_A表和t_movie表进行联合查询,保存至表answer7_A:

create table answer7_A as

select b.movieid as id, b.moviename as name, b.years as years, b.avgrate as rate, a.movietype as type

from t_movie a join answer6_A b on a.movieid=b.movieid;

第11章综合案例2影评大数据分析

(2)表answer7_A按照电影类型中是否包含Comedy和按照评分≥4.0作为Where过滤条件,按照评分作为排序条件进行查询,将结果保存到表answer7_B中。其中,instr函数返回字符串str中子字符串substr第一次出现的位置,在SQL中第一字符的位置是1,如果str不含substr,则返回0。lcase函数把字段的值转换为小写。

create table answer7_B as

select t.id as id, t.name as name, t.rate as rate

from answer7_A t

where t.years=1997 and instr(lcase(t.type),‘comedy’) >0

order by rate desc

limit 10;

第11章综合案例2影评大数据分析

(3)查询表answer7_B:

select id,name,round(rate,2) from answer7_B;
第11章综合案例2影评大数据分析

6.各种类型电影中评价最高的5部电影

统计各种类型电影中评价最高的5部电影(类型、电影名、平均影评分)。

(1)将表answer7_A中的type字段进行裂变,将结果保存到表answer8_A中。其中,Lateral View用于和Split、Explode等函数一起使用,能将一行数据拆分成多行数据,在此基础上可以对拆分的数据进行聚合。Lateral View首先为原始表的每行调用UDTF,UDTF会把一行拆分成一行或者多行,Lateral View再把结果组合,产生一个支持别名表的虚拟表。

create table answer8_A as

select a.id as id, a.name as name, a.years as years, a.rate as rate, tv.type as type

from answer7_A a

lateral view explode(split(a.type,“\\|”)) tv as type;

第11章综合案例2影评大数据分析

(2)查询表answer8_A:

select * from answer8_A limit 10 ;

第11章综合案例2影评大数据分析

(3)按照type分组,添加一列记录每组的顺序,将结果保存到表answer8_B中:

create table answer8_B as

select id,name,years,rate,type,row_number() over(distribute by type sort by rate desc ) as num

from answer8_A;

第11章综合案例2影评大数据分析

(4)查询表answer8_B:

select * from answer8_B limit 10;

第11章综合案例2影评大数据分析

(5)从表answer8_B中取出num列序号≤5:

select a.id, a.name, a.years, round(a.rate,2), a.type, a.num from answer8_B a where a.num <= 5 limit 10;
第11章综合案例2影评大数据分析文章来源地址https://www.toymoban.com/news/detail-469188.html

到了这里,关于第11章综合案例2影评大数据分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬取影评并进行情感分析和数据可视化

    前几天出了《航海王:红发歌姬》等电影,我就立马看了,正好做一个爬取影评,想看看影评的好坏。这就离不开python爬虫和自然语言处理技术了。 这是一个小案例:包含python爬虫、数据预处理、自然语言处理、数据可视化等内容。下面我将详细这个小案例。 1、分析界面元

    2024年02月08日
    浏览(76)
  • 大数据Hadoop教程-学习笔记06【Hadoop生态综合案例:陌陌聊天数据分析】

    视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程,总时长:14:22:04 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g,提取码:6666 【P001-P017】大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】【17p】 【P018-P037】大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】【20p】

    2024年02月02日
    浏览(34)
  • Python数据分析案例11——灰色预测法预测时间序列数据

    本次案例来自2022华为杯第E题,第2小问。给定了2012.01-2022.03的土壤湿度的月度数据,需要预测2022.04-2023.12的土壤湿度的月度数据。典型的时间序列预测。 传统的时间序列预测肯定是ARIMA模型,可以参考我之前的文章。Python统计学10——时间序列分析自回归模型(ARIMA) 现在流行的

    2024年02月06日
    浏览(46)
  • 数据分析案例-基于snownlp模型的MatePad11产品用户评论情感分析

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 一、项目介绍 二、数据集介绍 三、实验过程 3.1导入数据() ​3.2数据预处理 3.3数据

    2024年02月07日
    浏览(35)
  • 青岛大学_王卓老师【数据结构与算法】Week04_11_案例分析与实现1_学习笔记

    本文是个人学习笔记,素材来自青岛大学王卓老师的教学视频。 一方面用于学习记录与分享,另一方面是想让更多的人看到这么好的《数据结构与算法》的学习视频。 如有侵权,请留言作删文处理。 课程视频链接: 数据结构与算法基础–第04周11–2.8案例分析与实现1–多项

    2024年02月12日
    浏览(38)
  • 【Hadoop综合实践】手机卖场大数据综合项目分析

    🚀 本文章实现了基于MapReduce的手机浏览日志分析 🚀 文章简介:主要包含了数据生成部分,数据处理部分,数据存储部分与数据可视化部分 🚀 【本文仅供参考!!非唯一答案】其中需求实现的方式有多种,提供的代码并非唯一写法,选择适合的方式即可。 手机日志分析需

    2024年02月08日
    浏览(33)
  • 电影数据可视化综合分析

    1.1 沈腾参演电影数据获取 1.2 电影数据可视化分析 大家好✨,这里是bio🦖。点赞+关注不迷路。数据可视化在数据科学和数据分析中非常重要,例如论文中配色精美的结果图、PPT汇报中突出数据差异数据分析图等。通过可视化,我们可以直观地观察和理解数据的分布、趋势、

    2024年02月12日
    浏览(37)
  • 【大数据 | 综合实践】大数据技术基础综合项目 - 基于GitHub API的数据采集与分析平台

    🤵‍♂️ 个人主页: @AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍 🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能硬件(虽然硬件还没开始玩,但一直

    2024年02月08日
    浏览(42)
  • 大数据综合项目--网站流量日志数据分析系统(详细步骤和代码)

    提示:这里简述我使用的版本情况: ubuntu16.04 hbase1.1.5 hive1.2.1 sqoop1.4.6 flume1.7.0 项目所使用的参考文档和代码资源和部分数据 网盘链接:链接:https://pan.baidu.com/s/1TIKHMBmEFPiOv48pxBKn2w 提取码:0830 为更好的理解项目架构,对项目使用的一些服务补充一些基本概述: 什么是Sqoop

    2023年04月08日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包