大数据图书数据分析

1.项目简介

1.1项目背景

随着人们生活水平的提高和消费观念的更新,图书市场需求不断发生变化,出现了需求多样化的趋势。近年来,我国网民网上读书率正在迅速增长,上网阅读率平均每年增长10%。纸质阅读力虽然在下降,但是传统的纸质图书阅读在相当长的时间内仍将占据重要地位。纸质阅读面临许多挑战,如新媒体对传统纸质媒体市场进行瓜分、中国出版业创新不足和纸质图书价格过高等问题。针对如下现象,本文主要针对主要文学类纸质图书价格、销量、折扣等研究其之间的相互关系,旨在找到一个合适的价格区间,让商家和读者都能接受的纸质图书价格,以此来提高商家的销量和读者的购买量,让二者均从此获益。

1.2项目功能

(1)后裔采集器获取当当网图书数据

(2) Python数据预处理

(3)数据上传Hive

4Hive数据分析

(5)MapperReduce数据分析

(6)Python数据可视化分析

1.3运行环境

(1)操作系统:Linux(Ubuntu16.04);

(2) MySQL版本:5.7.16;

(3)Hadoop版本:2.7.1;

(4)HBase版本:1.1.5;

(5)Hive版本:1.2.1;

(6)Sqoop版本:1.4.6;

(7)Eclipse版本:3.8。

2.数据集与数据预处理

2.1数据集

(1)数据来源

本项目数据收集文学类图书中戏剧文学、文学理论、纪实文学、中国古诗词、民间文学共5中类型的书籍,每类6000行数据,一共30000万行数据

(2)采集数据包涵数据类型

字段名称

字段说明

字段类型

name

书名

String

price

价格

Int

author

作者

String

evaluate

评价数量

Int

publish_time

出版时间

String

discount

折扣

Float

publish

出版社

String

type

类型

String

(3)前20行数据查询(由于书名太长,所以这里暂不显示)

大数据图书数据分析_第1张图片 

2.2数据预处理

2.2.1 Python数据预处理

对出版时间(publish_time)和出版社(publish)字符串进行提取,删除特殊字符“/”;在书名(name)因为太长,不适合观察数据,所以只截取了前面5个字符;在末尾增加1列数量(number),均赋值为1,表示每种图书被出版了1次;对评价数量(evaluate)在采集数据时通过观察发现,当该书籍没有评价时,采集到对书籍为空值,所以对所有评价数量为空值的赋值为0;最后对所有存在空值所在的行进行删除操作。Python预处理之后的数据一共有24028行,前20行数据

Python预处理之后数据类型

字段名称

字段说明

字段类型

name

书名

String

price

价格

Int

author

作者

String

evaluate

评价数量

Int

publish_time

出版时间

String

discount

折扣

Float

publish

出版社

String

type

类型

String

number

数量

Int

2.2.2 AWK数据预处理

(1)删除列名

大数据图书数据分析_第2张图片

(2)对字段预处理

对每一行数据从1到n自增一个id值,便于区分数据 大数据图书数据分析_第3张图片

(3)预处理结果

大数据图书数据分析_第4张图片

(4)Hive预处理之后数据类型为

字段名称

字段说明

字段类型

id

编号

Int

name

书名

String

price

价格

Int

author

作者

String

evaluate

评价数量

Int

publish_time

出版时间

String

discount

折扣

Float

publish

出版社

String

type

类型

String

number

数量

Int

2.3数据上传

(1)数据上传HDFS并查看前10行数据

 大数据图书数据分析_第5张图片

(2)Hive新建数据库和外部表

 大数据图书数据分析_第6张图片

(3)查看Hive外部表中前10行数据

 大数据图书数据分析_第7张图片

3.MapperReduce数据分析

本章节所有MapperReduce文件均存放在MapperReduce工程文件夹下,包ch3_1 - ch3_10分别是下面3.1-3.10MapperReduce数据分析的源代码

 大数据图书数据分析_第8张图片

 

3.1 五种类型图书的数据量

(1)分析

统计收集的5类数据,观察这5类数据分别有多少行,因为我们是要对比这5种不同类型的图书,所以我们最终预处理后的各种类型书籍的数量如果数量相差太多,会对我们的结果有较大的影响,当然最好的情况下5中类型书籍的数据量刚好相对,这样使我们的分析更加准确。

(2)重要代码代码和运行情况

大数据图书数据分析_第9张图片

(3)文件输出结果

大数据图书数据分析_第10张图片 

 

3.2 五种类型图书的比例

(1)分析

统计5种类型数据相对的比例,通过对比,发现5中类型的数据比例基本均为20%左右,说明收集的各种类型收集的数据量基本相同,在后续的分析过程中,我们的分析结果将会更为准确。

(2)重要代码和运行情况

大数据图书数据分析_第11张图片

(3)文件输出结果

大数据图书数据分析_第12张图片 

3.3 五种类型的书籍被多少家出版社出版

(1)分析

对每一类书籍,可能同时被多家出版社出版;一家出版社,可能也出版了大量同类型书籍。一类书籍被更少的出版社出版,说明同有较多出版社出版了大量同类型书籍,说明这类书籍的读者和作者会比较多。所以,可以稍微提高文学理论类书籍出版量,而戏剧文学则应该少量出版。

(2)重要代码和运行情况

大数据图书数据分析_第13张图片

 

(3)文件输出结果

大数据图书数据分析_第14张图片

3.4 不同类型的书籍的出版年份和出版社

(1)分析

 

 

对于不同书籍,被出版的时间不一样,通过MapperReduce输出结果,不难发现,大多数出版社大多在2000年以后开始大量出版书籍,而在2000年以前,出版社出版书籍数量非常少,说明当今社会文化教育事业非常繁荣,教育发展相对于20年前有了巨大的进步,文化事业的发展欣欣向荣。

(2)重要代码和运行情况

大数据图书数据分析_第15张图片

 

(3)文件输出结果

大数据图书数据分析_第16张图片

3.5 每年每种类型书籍的出版数量

(1)分析

分析自1974年以来,每年各种类型书籍出版数量的变化,通过观察对比,找出哪一种类型的书籍对读者和作者更有吸引力。

(2)重要代码和运行情况

大数据图书数据分析_第17张图片 

(3)文件输出结果

 大数据图书数据分析_第18张图片

3.6 每年书籍的最低和最高价格

(1)分析

通过每年书籍最低价格和最高价格的对比变化,我们可以预测未来图书价格的变化,比如。随着信息化社会的发展,教育越来越普及,人们生活越来越富裕,价格将不再会是制约知识传播的主要原因,高质量的文学作品的最高价格将会越来越高,而文学水平一般图书的最低价格将会越来越低。

(2)重要代码和运行情况

大数据图书数据分析_第19张图片 

(3)文件输出结果

 大数据图书数据分析_第20张图片

3.7 二次排序,年份从低到高,价格从高到低

(1)分析

通过观察,随着时间的推移,图书的价格越来越多样化,图书被出版的数量也越来越多,最高价格越来越高,最低价格越来越低。分析图书价格变化,预测未来几年出版图书的价格。

(2)重要代码和运行情况

大数据图书数据分析_第21张图片 

(3)文件输出结果

大数据图书数据分析_第22张图片 

3.8 评价数量10的书籍信息

(1)分析

在图书评价数量前10的书籍中,有6本是属于中国古诗词类图书,可见中国古诗词深受读者喜爱,同时这10本书基本是属于近三年新出版的新书,可见近些年来中国文化蓬勃发展,中国人对中国文化有了越来越多的认同。

(2)重要代码和运行情况

大数据图书数据分析_第23张图片 

(3)文件输出结果

大数据图书数据分析_第24张图片

3.9 每年出版图书的数量

(1)分析

通过每年快速增长的出版图书数量,说明越来越多的作者加入了文化创作中,同时,未来中国文学的市场将会越来越广阔。

(2)重要代码和运行情况

大数据图书数据分析_第25张图片

(3)文件输出结果

大数据图书数据分析_第26张图片 

3.10 对价格实现分区并进行排序

(1)分析

通过对价格分别大于1000,在500到1000之间和低于500之间书籍数量的对比我们发现,大部分图书都在500以下,500-1000之间仅仅占少部分,而1000以上则更少。

(2)重要代码和运行情况

大数据图书数据分析_第27张图片

 

(3)文件输出结果

大数据图书数据分析_第28张图片

 

4.Hive统计分析

4.1 评价数量大于1000的各种类型的书籍数量和平均价格

(1)目的

研究出版书籍数量和价格的关系,价格是否会影响销售量和顾客的评价数量。

(2)运行代码

大数据图书数据分析_第29张图片

(3)运行结果

大数据图书数据分析_第30张图片 

(4)文件输出结果

大数据图书数据分析_第31张图片 

4.2 统计每种类型前10价格书籍的价格和评价数量

(1)目的

研究5类书籍前10名价格的对比,发现价格与书籍类型是否有关系,价格过高的书籍类型是否会评价数量的减少

(2)运行代码

大数据图书数据分析_第32张图片 

(3)运行结果

大数据图书数据分析_第33张图片 

(4)文件输出结果

大数据图书数据分析_第34张图片 

 

4.3 统计每种类型前10价格的书籍和折扣

(1)目的

研究为了吸引顾客购买高价书籍,商家是否会做更大力度折扣,一次来提高书籍的销量。

(2)运行代码

大数据图书数据分析_第35张图片

(3)运行结果

大数据图书数据分析_第36张图片

 

(4)文件输出结果

大数据图书数据分析_第37张图片

4.4 统计书籍价格和折扣

(1)目的

研究价格和折扣的关系,观察发现价格越高的书籍,折扣越大,我们可以判断,高价书籍会打较高的折扣力度,来吸引消费者,以此来提高销量。

(2)运行代码

大数据图书数据分析_第38张图片

(3)运行结果保存

大数据图书数据分析_第39张图片(4)文件输出结果

5.数据可视化

5.1 五类书籍出版的比例

(1)说明

读取3.2 五种书籍的比率MapperReduce输出文件,并对其绘制扇形图

(2)代码

大数据图书数据分析_第40张图片

 

(3)运行结果

大数据图书数据分析_第41张图片

5.2 2010-2020年五类书籍出版的数量

(1)说明

读取3.1 每年每种类型书籍出版数量MapperReduce输出结果,截取其中2010-2020年的数据进行绘制柱型图。

(2)代码

大数据图书数据分析_第42张图片

(3)运行结果

大数据图书数据分析_第43张图片 

5.3 2000-2020年份书籍最高价格

(1)说明

读取 3.6 每年书籍的最低和最高价格的MapperReduce输出结果,截取其中2000-2020年份书籍的最高价格绘制折线图。

(2)代码

大数据图书数据分析_第44张图片

(3)运行结果

大数据图书数据分析_第45张图片

5.4 2000-2020年每年出版图书数量

(1)说明

读取 3.9 每年出版图书数量的MapperReduce输出结果,截取其中2000-2020年份书籍的出版数量绘制柱形图。

(2)代码

大数据图书数据分析_第46张图片

(3)运行结果

大数据图书数据分析_第47张图片

5.5 五类书籍价格前10的对比

(1)说明

读取4.2 统计每种类型前10价格书籍的价格和评价数量的Hive输出结果,截取其中书籍书籍的价格绘制折线图。

(2)代码

大数据图书数据分析_第48张图片 (3)运行结果

大数据图书数据分析_第49张图片

6.总结

此次课程项目非常有意义,因为很好地考察了我们的实践能力。平时都是老师上课教,然后我们照着课本或老师提供的代码,基本上运行起来不会有太大的问题,只是稍微改一改输入输出文件的位置啊和自己的数据信息之类的。通过这个项目就能够综合我们本学期所学的基本所有知识点。而且老师给的代码,有一些其实不适合我们的项目需要,这时候就要我们自己改进,这就能很好地检验我们到底有没有真正学懂了,如果真的学会了就能在老师代码的基础上进行改进,不会的也能在一些其他不同的java代码里进行查找,然后修改,非常好。

中途出了很多错误,但最后还是顺利的完成。数据预处理很重要,尤其是对一些特殊字符进行处理,需要用到正则表达式之类的,这方面比较薄弱,以前不好好学,现在要用到就不会了。另外我也体会到脚本数据预处理功能的强大,因为一些数据预处理的问题,基本上把awk数据预处理学了一遍,虽然最后用了其它的办法解决我的数据问题,但收获还是非常非常大。

相比于上学期,这学期对不管是爬取数据,数据预处理,Hive数据上传分析,相对上学期有了非常大的进步。上学期还不会用Python进行数据预处理,结果只能针对1万行的数据一行一行对一些特殊字符进行整行的删除,这学期较早对pandas库有了了解,因此直接进行Python预处理,简单方便,但仍需加强。同时对matplotlib库也有了更深的了解,画出来的图明显比上学期好看很多,但仍需加强。

总之,收获满满。

你可能感兴趣的:(信息可视化,大数据)