本实验环境已开启 Hadoop 服务

  1. 在 hive 中创建数据库 mydb

注意:在开始要求2之前,建议您提前查看数据库中是否存在 moviecleaned 表(在环境没销毁的情况下,第一关的导入的数据可以持续使用)。如果不存在请按要求2执行,同时注意数据不要重复插入,否则可能影响后续统计的准确性。

  1. mydb 中创建 moviecleaned 表,将数据集 movies.txt 导入 moviecleaned 表中。注意:数据集所在位置: /data/workspace/myshixun/data/movies.txt ,数据集文件字段之间以 \t 分割,文件部分数据展示如下:
  2. 天气之子 6676.11 21.2% 92616 25.4% 24 19.9% 11300.0 上映2天 2019-11-02 2019-11-01
  3. 天池水怪 1.14 <0.1% 57 <0.1% 6 -- 84.4 2020-10-09 往期电影
  4. 太空狗之月球大冒险 3.58 <0.1% 333 <0.1% 4 4.5% 270.7 上映14天 2019-12-27 2019-12-14
  5. 夺冠 2985.81 60.4% 133808 50.3% 6 4.0% 22900.0 上映5天 2020-09-29 2020-09-25
  6. 在 hive 数据库 mydb 中,创建 movie_boxoffice 表,使用 Hive SQL 来统计统计 2020 年首映的电影上映后 7 天的电影票房信息,并插入到 movie_boxoffice 表。

查询结果样例如下:

  1. movie_name dates boxoffice
  2. 夺冠 2020-09-25 5531.9
  3. 夺冠 2020-09-26 7098.89
  4. 夺冠 2020-09-27 4276.5
  5. 夺冠 2020-09-28 2975.45
  6. 夺冠 2020-09-29 2985.81
  7. 夺冠 2020-09-30 5233.71
  8. 夺冠 2020-10-01 4431.47

相关数据及结构说明

数据集对应字段说明:

字段名 说明 类型
movie_name 电影名 string
boxoffice 当日综合票房 string
box_rate 票房占比 string
sessions 排片场次 string
show_count_rate 排片占比 string
avg_number 场均人次 string
attendance 上座率 string
total_boxoffice 当前总票房 string
movie_days 上映天数 string
current_time 当前日期 string
releaseDate 上映日期 string

movie_boxoffice 表结构:

字段名 类型 说明
movie_name string 电影名
dates string 当前日期
boxoffice float 当天票房
  • 如果实验环境已经创建了 mydb 数据库和 moviecleaned 表,假如环境没有重启或者环境没有过期,可以跳过创建 mydb 数据库和 moviecleaned 表的步骤。否则需要重新开始。

  • 任务完成后请点击"评测"按钮,系统验证 movie_boxoffice 表是否存在并查询表内容,程序未通过的情况下,可以点击测试集查看具体问题;

  • 本任务设置了多个测试集,通过其中任一测试集将可获得对应分数。

考核点说明

从 mydb 数据库中的 movie_boxoffice 表查询出来的内容是否正确。

开始你的任务吧,祝你成功!

#创建movie_boxoffice表,用来存放数据查询的结果
create table movie_boxoffice(movie_name string,dates string, boxoffice float) 
row format delimited fields terminated by '\t' stored as textfile;
#查询,并将结果导入movie_boxoffice表中
insert overwrite table movie_boxoffice 
select t.movie_name,moviecleaned.current_time,boxoffice 
from moviecleaned left join 
(select movie_name,current_time from moviecleaned WHERE movie_days="上映首日" and releaseDate like "2020%" GROUP BY movie_name,current_time) t 
on moviecleaned.movie_name=t.movie_name 
WHERE moviecleaned.current_time between t.current_time and DATE_ADD(t.current_time,+6) 
ORDER BY t.movie_name,moviecleaned.current_time;
                    电影票房之数据分析(Hive)--第4关。本关任务基于EduCoder平台提供的初始数据集,统计 2020 年首映的电影上映后 7 天的电影票房信息。编程要求本实验环境已开启Hadoop服务在 hive 中创建数据库mydb;注意:在开始要求2之前,建议您提前查看数据库中是否存在 moviecleaned 表(在环境没销毁的情况下,第一关的导入的数据可以持续使用)。如果不存在请按要求2执行,同时注意数据不要重复插入,否则可能影响后续统计的准确性。在mydb中创建moviecle
我这里一共有四个表,分别是 movies ratings tags links,分别如下
一、在HDFS中创建文件夹# 二、将本地的四张表上传到新建文件夹中,并检验是否成功导入![在这里插入图片描述](https://img-blog.csdnimg.cn/d5a270490f244b5caa932e4279cd710d.png# 三、在hive中创表,并将数据导入
1.查有哪些数据库,接着创建新的数据库,并使用相应数据库
2.创表并导入数据
(1.1)