本书以Spark大数据分析的常用技术与真实项目相结合的方式,深入浅出地介绍Spark大数据分析的重要内容。全书共8个项目,内容包括广告流量检测违规识别流程分析、Spark大数据环境安装搭建、基于Hive实现广告流量检测数据存储、基于Spark SQL实现广告流量检测数据探索分析、基于Spark SQL实现广告流量检测数据预处理、基于Spark MLlib实现广告流量检测违规识别模型构建与评估、基于Spark开发环境实现广告流量检测违规识别,以及基于TipDM大数据挖掘建模平台实现广告流量检测违规识别。本书项目2~项目7都包含知识测试和技能测试,通过练习和操作实践,读者可巩固所学的内容。
本书可以作为大数据分析相关课程的教材,也可以作为数据分析爱好者的自学用书。
落实立德树人根本任务。本书每个项目都融入素质目标,教导学生遵纪守法,养成敬业、精益、专注、创新的工匠精神,树立正确的职业观念。
企业真实项目贯穿全书。本书通过一个企业真实项目,按照大数据分析的流程详细地讲解需求分析、数据存储、数据探索分析、数据预处理、模型构建与评估以及模型应用等环节。
以项目为导向。本书项目均由项目背景、项目目标、目标分析、知识准备、项目实施、项目总结等构成,让读者对实际项目的流程有初步的认识。
将拓展与巩固结合。本书每个项目(项目1、项目8除外)均包含技能拓展,用于讲解项目中没有涉及的知识,以丰富读者的知识。在每个项目(项目1、项目8除外)的最后添加知识测试和技能测试,以帮助读者巩固所学知识,实现真正理解并应用所学知识。
郑浩森,男,湛江幼儿师范专科学校,数学系主任,大数据技术专业负责人,广东省数学会理事、广东省工业与应用数学学会理事会理事、广东省现场统计学会理事、广东省数学会高职高专分会常务理事,研究方向为智能计算技术,担任大数据技术专业多门课程,主持或参与省部级课题多项,全国大学生数学建模(广东省分赛)优秀指导教师。 张良均,高级信息系统项目管理师,泰迪杯全国大学生数据挖掘竞赛(www.tipdm.org)的发起人。华南师范大学、广东工业大学兼职教授,广东省工业与应用数学学会理事。兼有大型高科技企业和高校的工作经历,主要从事大数据挖掘及其应用的策划、研发及咨询培训。全国计算机技术与软件专业技术资格(水平)考试继续教育和CDA数据分析师培训讲师。发表数据挖掘相关论文数二十余篇,已取得国家发明专利12项,主编图书《神经网络实用教程》、《数据挖掘:实用案例分析》、《MATLAB数据分析与挖掘实战》等9本畅销图书,主持并完成科技项目9项。获得SAS、SPSS数据挖掘认证及Hadoop开发工程师证书,具有电力、电信、银行、制造企业、电子商务和电子政务的项目经验和行业背景。
项目1 广告流量检测违规识别流程分析 1
【教学目标】 1
【思维导图】 1
【项目背景】 2
【项目目标】 2
【目标分析】 2
【知识准备】 2
一、认识大数据 2
(一)大数据的概念 3
(二)大数据的特征 3
二、认识大数据分析 4
(一)大数据分析的概念 4
(二)大数据分析的流程 5
(三)大数据分析的工具 6
【项目实施】 7
任务一 了解正常的广告投放流程 7
任务二 了解广告流量违规现状 8
任务三 了解广告流量常见违规方式 9
任务四 了解识别虚假流量的常见维度 9
(一)基本属性 9
(二)产品参与度 10
任务五 广告流量检测违规识别流程分析 11
【项目总结】 12
项目2 Spark大数据环境安装搭建 13
【教学目标】 13
【思维导图】 13
【项目背景】 14
【项目目标】 14
【目标分析】 14
【知识准备】 14
一、Hadoop大数据框架 14
(一)Hadoop简介 14
(二)Hadoop的发展历程 15
(三)Hadoop的特点 16
(四)Hadoop生态系统 16
(五)Hadoop的应用场景 17
二、Hive数据仓库工具 18
(一)Hive简介 18
(二)Hive的特点 18
(三)Hive的应用场景 19
(四)Hive与关系数据库的区别 19
三、Spark分布式计算框架 20
(一)Spark简介 20
(二)Spark的发展历程 21
(三)Spark的特点 21
(四)Spark生态系统 23
(五)Spark的应用场景 24
【项目实施】 24
任务一 安装搭建Hadoop集群 24
(一)创建Linux虚拟机 26
(二)设置固定IP地址 31
(三)远程连接虚拟机 33
(四)配置本地yum源及安装常用软件 36
(五)在Linux系统下安装Java 40
(六)修改配置文件 41
(七)克隆虚拟机 45
(八)配置SSH免密登录 48
(九)配置时间同步服务 49
(十)添加地址映射 52
(十一)启动关闭集群 52
任务二 安装搭建Hive 54
(一)安装MySQL 54
(二)下载和安装Hive 59
(三)修改Hive配置文件 59
(四)设置环境变量 60
(五)初始化元数据库与启动Hive 61
任务三 安装搭建Spark集群 62
(一)解压并配置Spark集群 62
(二)启动Spark集群 63
(三)查看Spark监控服务 64
【项目总结】 65
【技能拓展】 65
【知识测试】 66
【技能测试】 67
测试 修改master虚拟机的IP地址 67
项目3 基于Hive实现广告流量检测数据存储 69
【教学目标】 69
【思维导图】 70
【项目背景】 70
【项目目标】 71
【目标分析】 71
【知识准备】 71
一、了解Hive中的数据类型 71
二、创建与管理数据库 72
(一)创建数据库语法格式 72
(二)删除数据库语法格式 73
(三)更改数据库语法格式 74
(四)使用数据库语法格式 74
三、创建表 74
(一)创建内部表 76
(二)创建外部表 77
(三)创建分区表 79
(四)创建桶表 79
四、修改表 80
五、导入数据至Hive表 83
(一)将文件系统中的数据导入Hive表 83
(二)通过查询语句向表中插入数据 84
六、导出Hive表中的数据 87
(一)将Hive表中的数据导出至本地文件系统 87
(二)将Hive表中的数据导出至HDFS 87
【项目实施】 88
任务一 创建数据表 88
(一)数据字段说明 88
(二)创建Hive表 89
任务二 导入数据至Hive表 92
【项目总结】 93
【技能拓展】 93
【知识测试】 95
【技能测试】 96
测试 某连锁咖啡店经营情况数据存储 96
项目4 基于Spark SQL实现广告流量检测数据探索分析 98
【教学目标】 98
【思维导图】 99
【项目背景】 99
【项目目标】 99
【目标分析】 100
【知识准备】 100
一、认识Spark SQL框架 100
(一)Spark SQL简介 100
(二)配置Spark SQL CLI 102
(三)Spark SQL与Shell交互 103
二、创建DataFrame对象 103
(一)通过结构化数据文件创建DataFrame 104
(二)通过外部数据库创建DataFrame 105
(三)通过RDD创建DataFrame 105
(四)通过Hive表创建DataFrame 106
三、查看DataFrame数据 107
(一)printSchema():输出数据模式 108
(二)show():查看数据 108
(三)first()、head()、take()、takeAsList():获取若干行记录 109
四、掌握DataFrame行列表查询操作 110
(一)条件查询 111
(二)查询指定字段的数据信息 111
(三)查询指定行数的数据 113
(四)排序查询 114
(五)分组查询 115
【项目实施】 116
任务一 读取数据创建DataFrame对象 116
任务二 简单查询DataFrame数据 116
(一)查询数据记录数 116
(二)查询数据缺失值 117
任务三 探索分析日流量特征 119
任务四 探索分析IP地址的访问次数特征 120
任务五 探索分析虚假流量数据特征 120
【项目总结】 124
【技能拓展】 124
【知识测试】 125
【技能测试】 126
测试1 使用DataFrame查询操作分析员工基本信息 126
测试2 使用DataFrame查询操作分析图书信息 127
项目5 基于Spark SQL实现广告流量检测数据预处理 129
【教学目标】 129
【思维导图】 130
【项目背景】 130
【项目目标】 130
【目标分析】 130
【知识准备】 131
一、掌握DataFrame行列表增、删操作 131
(一)新增数据列 131
(二)删除数据列 132
二、创建与使用用户自定义函数 133
三、掌握DataFrame表联合操作 135
(一)5种join()方法 135
(二)根据特定字段进行表联合操作 136
(三)指定类型进行表联合操作 137
(四)使用Column类型进行表联合操作 137
四、掌握DataFrame行列表输出操作 138
(一)保存为文件 138
(二)保存为持久化的表 139
【项目实施】 140
任务一 使用drop语句删除数据 140
任务二 自定义函数构建关键特征 140
(一)划分时间区间 141
(二)构建关键特征并保存至Hive表中 142
任务三 保存DataFrame数据至Hive表中 143
【项目总结】 144
【技能拓展】 144
【知识测试】 145
【技能测试】 146
测试 基于Hive的人力资源系统数据处理 146
项目6 基于Spark MLlib实现广告流量检测违规识别模型构建与评估 149
【教学目标】 149
【思维导图】 150
【项目背景】 150
【项目目标】 151
【目标分析】 151
【知识准备】 151
一、认识Spark MLlib算法库 151
(一)了解机器学习算法 152
(二)Spark MLlib简介 154
二、掌握Spark MLlib中的算法与算法包 155
(一)数据类型 155
(二)基本统计 155
(三)管道 157
(四)特征提取 158
(五)特征处理 160
(六)回归 163
(七)分类 165
(八)聚类 169
(九)关联规则 170
(十)智能推荐 171
三、掌握Spark MLlib的评估器与模型评估 173
【项目实施】 175
任务一 数据归一化 175
任务二 构建建模样本 176
任务三 使用spark.ml.classification模块构建分类模型 176
(一)使用逻辑回归算法实现广告流量检测违规识别 176
(二)使用随机森林算法实现广告流量检测违规识别 177
任务四 使用评估器实现模型评估 178
(一)模型评估 178
(二)模型评估结果对比 179
【项目总结】 179
【技能拓展】 179
【知识测试】 181
【技能测试】 182
测试 基于Spark MLlib实现新闻分类 182
项目7 基于Spark开发环境实现广告流量检测违规识别 184
【教学目标】 184
【思维导图】 184
【项目背景】 185
【项目目标】 185
【目标分析】 185
【知识准备】 185
一、搭建Java开发环境 185
(一)安装JDK 8 185
(二)设置环境变量 187
二、搭建Spark开发环境 189
(一)下载与安装IntelliJ IDEA 189
(二)Scala插件安装与使用 192
(三)在IntelliJ IDEA中配置Spark运行环境 196
(四)运行Spark程序 198
【项目实施】 206
任务一 开发环境下实现流量数据违规识别 206
(一)集群连接参数设置 206
(二)封装代码 207
(三)运行Spark程序 210
任务二 模型应用 210
【项目总结】 211
【技能拓展】 212
【知识测试】 214
【技能测试】 215
测试 农产品销售分析 215
项目8 基于TipDM大数据挖掘建模平台实现广告流量检测违规识别 217
【教学目标】 217
【思维导图】 217
【项目背景】 218
【项目目标】 218
【目标分析】 218
【知识准备】 218
平台简介 218
(一)共享库 219
(二)数据连接 219
(三)数据集 220
(四)我的工程 220
(五)个人组件 223
【项目实施】 224
任务 快速构建广告流量检测违规识别工程 224
(一)数据源配置 225
(二)数据处理 227
(三)模型构建与评估 232
【项目总结】 235
参考文献 236