Hive期末测试题(头歌)

文章详细描述了如何使用HiveSQL查询数据库mydb,对1995年电影评分进行统计,比较不同性别用户评论次数,以及找出1995年男性观众最喜欢的电影类型。涉及多个SQL操作,如JOIN、GROUPBY、SUBSTRING和explode函数的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第1关:计算“Bad Boys (1995)”这部电影的评分次数

-- 使用mydb数据库
USE mydb;

-- 计算“Bad Boys (1995)”这部电影的评分次数
SELECT m.movieid, m.moviename, COUNT(r.movieid) AS rating_count
FROM t_movies m
JOIN t_ratings r ON m.movieid = r.movieid
WHERE m.moviename LIKE '%Bad Boys (1995)%'
GROUP BY m.movieid, m.moviename;

第2关:统计每年的电影评分次数

使用Hive的字符串函数来处理这个问题。
这个查询首先从电影名称中提取出年份,然后根据年份对电影评分进行分组统计。
---使用mydb数据库
USE mydb;


---统计每年的电影评分次数
SELECT 
    SUBSTRING(moviename, LENGTH(moviename)-4, 4) as year, 
    COUNT(*) as rating_count
FROM 
    t_movies m
JOIN 
    t_ratings r
ON 
    m.movieid = r.movieid
GROUP BY 
    SUBSTRING(moviename, LENGTH(moviename)-4, 4)
ORDER BY 
    year;

第3关:统计不同性别的观影用户1995年评论电影次数

对比不同性别的观影用户在1995年评论电影的次数。你可以使用Hive的字符串函数和JOIN操作来处理这个问题:

这个查询首先从电影名称中提取出年份,然后根据用户性别对电影评分进行分组统计。注意,这里假设电影名称

### 关于Hive期末考试题目及参考答案 #### 题目一:概念理解 1. **什么是Hive?其主要功能有哪些?** Hive是一个基于Hadoop数据仓库工具,可以用于查询和管理PB级别的分布式数据[^1]。它提供了类似于SQL的查询语言——HiveQL,使得熟悉SQL的开发者能够轻松编写MapReduce程序来处理大规模数据集。 2. **解释Hive中的内部表与外部表的区别。** 内部表由Hive管理和控制生命周期,在删除表格时会连同元数据以及实际存储的数据一起被移除;而外部表仅保存指向文件系统的路径信息,当删除此类表时只清除元数据而不影响原始数据位置上的内容。 #### 题目二:操作实践 3. **创建一个名为`students`的新数据库,并在此基础上建立一张记录学生基本信息(姓名、年龄、性别)的学生表。** ```sql CREATE DATABASE students; USE students; CREATE TABLE student_info ( name STRING, age INT, gender STRING ); ``` 4. **向上述创建好的`student_info`表中插入几条测试数据并展示全部记录。** ```sql INSERT INTO student_info VALUES ('Alice', 20, 'Female'); INSERT INTO student_info VALUES ('Bob', 22, 'Male'); SELECT * FROM student_info; ``` #### 题目三:高级应用 5. **如何优化Hive查询性能?列举至少三种方法。** - 使用分区(partitioning),通过减少扫描范围提高效率; - 启用压缩(compression),降低I/O开销; - 调整JVM参数(jvm options),如增大堆内存大小以适应更大规模的任务执行环境。 6. **描述一下Hive是如何实现与传统关系型数据库之间的数据交换过程。** 这种交互通常借助于Apache Sqoop完成,这是一种专门用来批量传输结构化数据到HDFS或从中导出至RDBMS(如MySQL, Oracle等) 的工具。它可以有效地将关系数据库管理系统(Relational Database Management System,RDBMS) 中的关系型数据迁移到Hadoop平台之上进行进一步加工分析。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值