0


基于Hive的网络电视剧收视率分析系统大数据Hadoop

本系统基于 Java 与 Spring Boot 技术,并结合 Hive 来实现对网络电视剧收视率的深入分析。它能够广泛收集来自多个渠道的相关数据,包括各网络平台上电视剧的播放量、观看时长、观众地域分布、年龄层次、观看设备类型以及观众的互动数据(如评论、点赞、分享等)。这些数据被整合存储到 Hive 数据仓库中,利用 Hive 强大的数据处理能力进行清洗和整理。通过 Java 编写的分析算法,基于 Hive 的数据进行多维度分析。例如,分析不同类型电视剧在不同时间段的收视率变化趋势,了解观众的观看习惯和偏好时段。可以对比不同平台上同一部电视剧的收视率表现,评估平台的影响力和传播效果。还能根据观众的地域和年龄分布,精准定位目标受众群体,为电视剧的制作方向和营销策略调整提供依据。Spring Boot 框架负责构建系统稳定的后端架构,保障数据的安全存储和高效处理,以及与前端交互的流畅性。系统提供可视化的界面,让影视制作公司、平台运营方等相关人员能够直观地查看收视率分析结果,如各类图表和报表展示收视率的动态变化、受众特征等。通过该系统,有助于相关方更好地把握市场需求,优化电视剧制作和推广策略,提高作品的质量和影响力,促进网络电视剧行业的健康发展。

前言

💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗
👇🏻 精彩专栏 推荐订阅👇🏻
🌟文末获取源码+数据库🌟
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

详细视频演示

请联系我获取更详细的演示视频

具体实现截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

技术栈

后端框架SpringBoot

Spring Boot是近几年最为流行的后台开发框架,它的诞生一改过去Spring框架开发中繁琐的配置,极大地简化了Spring应用的搭建和开发。Spring Boot框架不仅保有了Spring框架中的所有优秀特性,还通过使用特定的配置方式,在底层帮助开发人员在工程创建是就预先做了很多配置,这样在开发时就不再需要开发人员过多进行繁琐的配置了。另外在Spring Boot中集成了大量框架,这就使得开发人员不再需要到处寻找在导入开发中需要依赖的jar包,同时也解决了依赖包版本冲突问题,从而提高了依赖包引用的稳定性,从而实现了对Spring应用搭建和开发过程的简化。

前端框架Vue

vue技术可以让初学者尽快上手进行编写动态网站,不需要变成高级的Java编程人员才可以书写代码,从学习的效率还有编写的效率上都有很大的提升。让着重于网页开发者与着重于后台逻辑开发进行分离合作开发变成了一种可能,降低了学习成本,不需要考虑程序运行解释编译阶段的话,vue网页本身就可以理解成一个普通的Servlet。vue结构上面,主要分为两个方面,一个是专属的vue引擎,通俗的讲就是可以实现vue编译后运行解释的一个东西,另一个就是web服务器。vue运行编译需要vue引擎和web服务器进行配合以及相互协作,当然他们的分工也是很明确的,这样才可以真正的运行起来。vue容器和引擎有Tomcat,这个Tomcat其实也还有Apache静态解释代码的部分,虽然看起来运行效果差不多,但是其实是两个截然不同的工具,在文件系统里目录也是不一样的,当然如果有特殊需求也是可以进行特殊的配置的,配置上面还是比较灵活的。虽然Tomcat部署了网站之后就可以运行网页让客户访问,但是Tomcat也只是vue引擎而非web服务器。比如JRUN和Resin都算是vue引擎,而web服务器的职责比较单一,就是处理客户端请求还有返回给客户显示请求处理后的数据而已。vue引擎则可以运行纯HTML编写的网站,也可以运行vue编写的动态网站,在效率上也只是比单纯的web服务器而已,但是从纯web服务器无法运行动态网站上来讲,vue引擎在功能上还是强大了很多,提升一点点效率反而算不了什么,对于必须实现的功能这些要素上,选择了vue技术。

MySQL数据库

本课题研究研发的应用程序在数据操作里是难以预测的,而且常常产生变化。没有办法直接从word里写数据信息,这不但不安全,并且难以实现应用程序的功能。想要实现运用所需要的文件存储功能,就必定要选择专业数据库存储软件。大部分,应用程序达到的功能并不太繁杂,市场中所有关系数据库手机软件都能实现。但MySQL数据库,安装文件小,组装速度更快,使用方便,即便组装问题改进,不用再次安装操作系统,也不会影响电脑中第三方软件的运转,损耗网络资源少,最主要的是功能充分满足设计定位,因此最终选择MySQL数据库做为软件开发技术所需要的数据库。

核心代码

packagecom.controller;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Calendar;importjava.util.Map;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Date;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importcom.utils.ValidatorUtils;importorg.apache.commons.lang3.StringUtils;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.format.annotation.DateTimeFormat;importorg.springframework.web.bind.annotation.PathVariable;importorg.springframework.web.bind.annotation.RequestBody;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RequestParam;importorg.springframework.web.bind.annotation.RestController;importcom.baomidou.mybatisplus.mapper.EntityWrapper;importcom.baomidou.mybatisplus.mapper.Wrapper;importcom.annotation.IgnoreAuth;importcom.entity.NewsEntity;importcom.entity.view.NewsView;importcom.service.NewsService;importcom.service.TokenService;importcom.utils.PageUtils;importcom.utils.R;importcom.utils.MD5Util;importcom.utils.MPUtil;importcom.utils.CommonUtil;/**
 * 系统公告
 * 后端接口
 * @author 
 * @email 
 * @date 2021-03-22 21:07:09
 */@RestController@RequestMapping("/news")publicclassNewsController{@AutowiredprivateNewsService newsService;/**
     * 后端列表
     */@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object> params,NewsEntity news,HttpServletRequest request){EntityWrapper<NewsEntity> ew =newEntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));returnR.ok().put("data", page);}/**
     * 前端列表
     */@IgnoreAuth@RequestMapping("/list")publicRlist(@RequestParamMap<String,Object> params,NewsEntity news,HttpServletRequest request){EntityWrapper<NewsEntity> ew =newEntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));returnR.ok().put("data", page);}/**
     * 列表
     */@RequestMapping("/lists")publicRlist(NewsEntity news){EntityWrapper<NewsEntity> ew =newEntityWrapper<NewsEntity>();
          ew.allEq(MPUtil.allEQMapPre( news,"news"));returnR.ok().put("data", newsService.selectListView(ew));}/**
     * 查询
     */@RequestMapping("/query")publicRquery(NewsEntity news){EntityWrapper<NewsEntity> ew =newEntityWrapper<NewsEntity>();
         ew.allEq(MPUtil.allEQMapPre( news,"news"));NewsView newsView =  newsService.selectView(ew);returnR.ok("查询系统公告成功").put("data", newsView);}/**
     * 后端详情
     */@RequestMapping("/info/{id}")publicRinfo(@PathVariable("id")Long id){NewsEntity news = newsService.selectById(id);returnR.ok().put("data", news);}/**
     * 前端详情
     */@IgnoreAuth@RequestMapping("/detail/{id}")publicRdetail(@PathVariable("id")Long id){NewsEntity news = newsService.selectById(id);returnR.ok().put("data", news);}/**
     * 后端保存
     */@RequestMapping("/save")publicRsave(@RequestBodyNewsEntity news,HttpServletRequest request){
        news.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);

        newsService.insert(news);returnR.ok();}/**
     * 前端保存
     */@RequestMapping("/add")publicRadd(@RequestBodyNewsEntity news,HttpServletRequest request){
        news.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);

        newsService.insert(news);returnR.ok();}/**
     * 修改
     */@RequestMapping("/update")publicRupdate(@RequestBodyNewsEntity news,HttpServletRequest request){//ValidatorUtils.validateEntity(news);
        newsService.updateById(news);//全部更新returnR.ok();}/**
     * 删除
     */@RequestMapping("/delete")publicRdelete(@RequestBodyLong[] ids){
        newsService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}/**
     * 提醒接口
     */@RequestMapping("/remind/{columnName}/{type}")publicRremindCount(@PathVariable("columnName")String columnName,HttpServletRequest request,@PathVariable("type")String type,@RequestParamMap<String,Object> map){
        map.put("column", columnName);
        map.put("type", type);if(type.equals("2")){SimpleDateFormat sdf =newSimpleDateFormat("yyyy-MM-dd");Calendar c =Calendar.getInstance();Date remindStartDate =null;Date remindEndDate =null;if(map.get("remindstart")!=null){Integer remindStart =Integer.parseInt(map.get("remindstart").toString());
                c.setTime(newDate()); 
                c.add(Calendar.DAY_OF_MONTH,remindStart);
                remindStartDate = c.getTime();
                map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null){Integer remindEnd =Integer.parseInt(map.get("remindend").toString());
                c.setTime(newDate());
                c.add(Calendar.DAY_OF_MONTH,remindEnd);
                remindEndDate = c.getTime();
                map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper =newEntityWrapper<NewsEntity>();if(map.get("remindstart")!=null){
            wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null){
            wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);returnR.ok().put("count", count);}}

源码获取

文章下方名片联系我即可~
✌💗大家点赞、收藏、关注、评论啦 、查看✌💗
👇🏻获取联系方式👇🏻
精彩专栏推荐订阅:在下方专栏👇🏻

标签: 大数据 hadoop hive

本文转载自: https://blog.csdn.net/weixin_66485279/article/details/142897585
版权归原作者 QQ_1795806396 所有, 如有侵权,请联系我们删除。

“基于Hive的网络电视剧收视率分析系统大数据Hadoop”的评论:

还没有评论