从零搭建Hadoop集群到豆瓣电影数据分析:完整项目实践与可视化展示

imtoken钱包2025官网下载:imkei.app,imkeo.app,imtoke.app,tkken.com,tokey.app,imkey.app,imtke.app,tkken.in,imtoktte.tu5223.cn tp钱包2025官网下载:tp114.app,tp115.app,tp116.app,tp117.app,tpcockktp.tu5223.cn 比特派钱包2025官网下载:bit114.app,bit115.app,btp1.app,btp2.app,btp3.app,btbtptptpie.tu5223.cn

课题初衷

我专注于这个领域的研究,旨在亲自经历搭建平台、采集数据、整理分析以及展示结果的全部步骤。由于缺少专业人士的引领和团队的帮助,我不得不独立前行。现阶段,写博客只是为了记录这一过程,如果有幸被高手看到,还请多多包涵。

-DouBan-Spider         #项目根目录
----download           #下载网页源代码模块
--------__init__.py 
-------down_html.py 
----fileoutput         #文件输出保存路径
----output             #将抓取的内容写入文件
--------__init__.py
--------output_all.py
----parase             #解析网页代码
--------__init__.py
--------parase_html.py
----urlmanager         #链接管理
--------__init__.py
--------manage_url.py
----main

电影评论包括哪些内容_针对四大电影的影评与评论汇总_影评论

数据来源与采集

影评论_针对四大电影的影评与评论汇总_电影评论包括哪些内容

针对四大电影的影评与评论汇总_影评论_电影评论包括哪些内容

数据来源于豆瓣电影平台,我以Tag为依据开始搜集信息,通过标签筛选出了相关电影。我运用了Python 3.4.3版本,结合BeautifulSoup 4.4.1和urllib工具进行数据抓取。所收集的数据最终以csv格式保存在了本地。完成这一系列代码编写耗时颇多,尽管或许存在瑕疵,但每一行代码都倾注了我的努力与汗水。

数据上传存储

    bin/hdfs dfs -put /home/master/桌面/*.csv /file/douban_movie_data
    bin/hdfs dfs -put /home/master/桌面/*.txt /file/douabn_movie_data

电影评论包括哪些内容_针对四大电影的影评与评论汇总_影评论

数据收集完成之后,我先在个人电脑里保存起来,然后上传到HDFS进行原始数据的存储。这样,那些辛苦收集的数据就有了个放心的存放点。上传时确实遇到了一些小问题,但经过努力,问题都逐一解决了。回想起来,每一步都不容易。

数据ETL处理

category.csv处理

#创建category数据表
create table movie_category(
	cate_name string,
	cate_count int
)
comment "this table about movie category"
row format delimited fields terminated by ",";
#将category.csv加载到表中
load data inpath '/file/douabn_movie_data/category.csv' into table movie_category;

category.csv文件可直接放入Hive使用,用于建立category表并导入数据。然而,最初我直接导入时,在终端查询时遇到了乱码问题。于是,我将本地文件重新保存为UTF-8格式,再次导入Hive后,问题得以解决。这算是一个小教训,提醒我们在处理数据时,确实需要注意文件格式。

#-*-codinf:utf-8-*-
fp_w = open("new_movies_links.csv","a")
with open("movies_links.csv" ,"r") as fp:
    links = fp.readlines()
    for link in links:
        id = link.strip().split("/")[-2]
        href = link
        fp_w.write(id+"," +href)
fp_w.close()
print "ETL OK" 

movie_links.csv处理

#创建表movie_links
create table movie_links(
id int,
href string
)
comment "this table about every movie links"
row format delimited fields terminated by ",";
#从本地加载数据
load data local inpath "/home/master/mycode/new_movies_links.csv" into table movie_links;

对movie_links.csv文件进行了初步处理,从中筛选出了id数据。接着,我把这些信息分成了两列,并成功存入hive数据库。这一步骤的步骤繁杂,我经过反复试验才得以实现。在提取和保存数据的过程中,我必须做到精确无误,布局合理,为此我绞尽脑汁,几乎到了心力交瘁的地步。

# -*-coding:utf-8-*-
#encoding="utf-8"  保证导入hive之后查询时不会出现中文乱码
fp_w = open("new_movies_load.csv","a",encoding="utf-8")
with open("movie.csv","r") as fp_r:
    for line in fp_r.readlines():
        movies=line.strip().split(",")
        s = ""
        #对上映时间进行处理
        try:
            year = int(movies[6].replace("/","-").split("-")[0])
        except:
            yesr = ""
        try:
            month = int(movies[6].replace("/","-").split("-")[1])
        except:
            month = ""
        movies[6] = str(year) + "," + str(month)
        for m in movies:
            s += m+","
        fp_w.write(s[:-1]+"\n")
    print("OK !!!")
    fp_w.close()

数据分析展示

#创建存储表
create table movie_message(
    id int,
	title string,
	daoyan array,
	bianju array,
	leixing array,
	zhuyan array,
	year int,
	month int,
	shichang int,
	disnum int,
	score float
)
comment "this table about movie's message"
row format delimited fields terminated by ","
collection items terminated by '/';
#加载数据
load data local inpath "/home/master/mycode/new_movies_load.csv" into table movie_message;

电影类别统计

#加载数据
load data local inpath "/home/master/mycode/new_movies_load.csv" into table movie_message;
#创建剧情摘要表
create table movie_summary(
id int,
summary string
)
comment "this table about movie summary"
row format delimited fields terminated by "\t";
#加载数据
load data local inpath "/home/master/mycode/movie_summary.txt" into table movie_summary;     

根据标签与电影数量的对应关系,我们展示了十大最受欢迎的电影。通过这种方式,我们可以直观地了解到哪些类型的电影在数据中最为流行。首先,我们对影评数据进行了初步处理,并将其存储在Hive的数据表中,以便在分析时能够直接提取所需字段。相关的代码和源文件都可以在GitHub上找到,有兴趣的朋友可以自行查阅。

影评自动评级

每篇影评在豆瓣电影上都有五个等级的评分标准。我采用了贝叶斯分类法,对评分等级进行了词汇研究,并挑选出了常用词汇进行分类。尽管明白这种方法可能存在不足,我还是决定先进行尝试。但分类结果并不理想,这让我感到有些沮丧,真不知道该如何去优化。

可视化与不足

电影评论包括哪些内容_针对四大电影的影评与评论汇总_影评论

我制作了一个运用豆瓣电影资料的图表型网站。但需留意,这里展示的数据是静态的,不能实时同步豆瓣的最新信息,而且展示方式较为单一。因此,我认为在数据可视化领域,仍有很大的改进余地,这也激励我未来继续探索更佳的展示手段。各位朋友,你们在数据归类上有什么好的方法吗?有没有类似的研究经历愿意分享?欢迎在评论区分享,觉得我写得还行的话记得点赞和分享!

影评论_针对四大电影的影评与评论汇总_电影评论包括哪些内容

针对四大电影的影评与评论汇总_电影评论包括哪些内容_影评论

imtoken钱包2025官网下载:imkei.app,imkeo.app,imtoke.app,tkken.com,tokey.app,imkey.app,imtke.app,tkken.in,imtoktte.tu5223.cn tp钱包2025官网下载:tp114.app,tp115.app,tp116.app,tp117.app,tpcockktp.tu5223.cn 比特派钱包2025官网下载:bit114.app,bit115.app,btp1.app,btp2.app,btp3.app,btbtptptpie.tu5223.cn

作者头像
比特币钱包官方app创始人

TP Wallet官网

上一篇:雷军的朴素做派与小米企业文化:科技巨头的朴实品质与品牌理念
下一篇:如何设置电脑密码?三种方法助您加强电脑安全防护