HIVE时间函数小结

本文总结了Hive中常用的时间处理函数,特别是针对日期和时间字段的操作,如加减月份等,适合对Hive有一定了解并希望提升数据处理效率的读者。

最近使用HIVE时,经常遇到一些对时间字段进行处理的情况。所以总结了一下HIVE中时间函数,可能不是特别全面,仅供大家交流参考。

直至上传这篇小结时,还没有找到处理月份加减的函数,类似ORICLE中的ADD_MONTHS函数,如果你有好的方法,也请多多交流哦。

个人之前看了很多有关这方面的总结或者文章,都是以纯文字的方式展现,希望这篇小结可以加深你的印象。





至于时间 函数的具体用法,则不是这篇小结的重点。




本章节围绕电影数据分析项目实战展开,涵盖了多个重要的分析任务。通过统计所有电影的评分次数,能够了解每部电影的受关注程度,为电影的热度评估提供数据支持。使用 Hive 查询语句,按电影 ID 分组并统计记录数,可清晰呈现各电影的评分情况。 统计不性别的用户对电影的评分,有助于分析不性别观众的观影偏好。通过连接用户表和评分表,按性别和电影 ID 分组计算平均评分,发现不性别在电影选择和评价上的差异。 对评分次数最多的 10 部电影进行分析,可探寻热门电影的共性。按电影 ID 分组统计评分次数并排序,结合电影的其他信息,如类型、预算等,能为电影制作和推广提供参考。 统计不性别的用户评分最高的 10 部电影,进一步细化了不性别观众的喜好。利用窗口函数按性别分组排序,有助于深入了解不性别对各类电影的青睐程度。 计算指定电影的各年龄段用户的平均评分,能洞察不年龄段观众对特定电影的评价差异。连接用户表和评分表,按指定电影 ID 和年龄分组计算平均评分,为电影的精准营销提供依据。 统计影评库中各种类型电影中评分最高的 5 部电影,可总结不类型电影的优质代表。按电影类型分组排序,分析其特点,有助于电影制作和发行方把握市场趋势。 在自动打包并提交 MapReduce 方面,使用 Maven 工具将程序打包成 JAR 文件,再通过 Hadoop 命令行工具提交作业,实现了电影数据分析任务的自动化执行。 ```sql -- 统计所有电影评分次数 SELECT movie_id, COUNT(*) as rating_count FROM ratings GROUP BY movie_id; -- 不性别用户对电影的评分 SELECT u.gender, r.movie_id, AVG(r.rating) as avg_rating FROM users u JOIN ratings r ON u.user_id = r.user_id GROUP BY u.gender, r.movie_id; -- 评分次数最多的 10 部电影 SELECT movie_id, COUNT(*) as rating_count FROM ratings GROUP BY movie_id ORDER BY rating_count DESC LIMIT 10; -- 不性别用户评分最高的 10 部电影 WITH gender_movie_ratings AS ( SELECT u.gender, r.movie_id, AVG(r.rating) as avg_rating FROM users u JOIN ratings r ON u.user_id = r.user_id GROUP BY u.gender, r.movie_id ) SELECT gender, movie_id, avg_rating FROM ( SELECT gender, movie_id, avg_rating, ROW_NUMBER() OVER (PARTITION BY gender ORDER BY avg_rating DESC) as rn FROM gender_movie_ratings ) ranked WHERE rn <= 10; -- 指定电影各年龄段用户的平均评分 SELECT age_group, AVG(r.rating) as avg_rating FROM users u JOIN ratings r ON u.user_id = r.user_id WHERE r.movie_id = '指定电影ID' GROUP BY age_group; -- 各种类型电影中评分最高的 5 部电影 WITH movie_genre_ratings AS ( SELECT m.genre, m.movie_id, AVG(r.rating) as avg_rating FROM movies m JOIN ratings r ON m.movie_id = r.movie_id GROUP BY m.genre, m.movie_id ) SELECT genre, movie_id, avg_rating FROM ( SELECT genre, movie_id, avg_rating, ROW_NUMBER() OVER (PARTITION BY genre ORDER BY avg_rating DESC) as rn FROM movie_genre_ratings ) ranked WHERE rn <= 5; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值