数据采集与预处理

大数据采集与预处理
分享 推荐 4 收藏 260 阅读 14.0K
林子雨 (作者) 978-7-115-58063-4

关于本书的内容有任何问题,请联系 孙澍

1. 作者林子雨为国内高校知名的大数据教学老师,本书为作者多年大数据教学实践的结晶;
2. 本书详细阐述了大数据领域数据采集与预处理的相关理论和技术,包括大数据实验环境搭建、网络数据采集、分布式消息系统Kafka、日志采集系统Flume、数据仓库中的数据集成、ETL工具Kettle、使用pandas进行数据清洗等。
3. 配套资源丰富:讲义PPT、教学大纲、授课视频、实验指南、课后习题答案等;
4. 服务平台:作者教学团队打造了在线的“高校大数据课程公共服务平台”,为全国高校师生提供相关教学服务并经常更新。目前该平台已经成为国内高校大数据教学品牌,平台累计访问量超过1300万次;
5. 教师服务QQ群:916443807。

内容摘要

本书详细阐述了大数据领域数据采集与预处理的相关理论和技术。全书共8章,内容包括概述、大数据实验环境搭建、网络数据采集、分布式消息系统Kafka、日志采集系统Flume、数据仓库中的数据集成、ETL工具Kettle、使用pandas进行数据清洗。本书在网络数据采集、Kafka、Flume、Kettle、pandas等重要章节安排了丰富的实践操作,以便读者更好地学习和掌握数据采集与预处理的关键技术。
本书可以作为高等院校大数据专业的大数据课程教材,也可供相关技术人员参考。

前言

大数据作为继云计算、物联网之后IT行业又一颠覆性的技术,备受人们关注。大数据无处不在,包括金融、汽车、零售、餐饮、电信、能源、政务、医疗、体育、娱乐等在内的社会各行各业,都融入了大数据的印迹,大数据对人类的社会生产和生活必将产生重大而深远的影响。
对于一个国家而言,能否紧紧抓住大数据发展机遇,快速形成核心技术和应用参与新一轮的全球化竞争,将直接决定未来若干年世界范围内各国科技力量博弈的格局。大数据专业人才的培养是新一轮科技较量的基础,高等院校承担着大数据人才培养的重任。在我国,大数据专业已经成为一个炙手可热的“新工科”专业。目前,国内高校开设的大数据专业主要包括本科院校设立的“数据科学与大数据技术专业”和高职院校设立的“大数据技术与应用”专业。截至2021年,全国已经有1000余所高校设立了大数据专业。
高质量的教材是推进高校大数据专业建设的关键支撑。大数据分析全流程包括数据采集与预处理、数据存储与管理、数据处理与分析、数据可视化等内容,因此,大数据专业教材应该涵盖上述所有领域。但是,从市场上已有的教材来看,数据存储与管理、数据处理与分析、数据可视化等领域的教材已经非常丰富,完全可以满足高校教学的实际需求,唯独数据采集与预处理这个领域,目前相关教材还非常缺乏,不能满足广大高校的开课需求,这是本书被撰写的原因。
●写作背景
笔者带领的厦门大学数据库实验室团队,从2013年开始探索大数据教学,是国内高校较早进行大数据教学实践的团队之一,到目前为止,已经建立了一套较为完整的大数据专业教材体系,内容涵盖大数据入门课程、进阶课程和实训课程,我们同时也为教材配套打造了在线的“高校大数据课程公共服务平台”,为全国高校师生提供包括讲义PPT、授课视频、实验指南、课后习题等在内的大量大数据教学配套资源,目前平台已经成为国内高校知名大数据教学品牌,平台累计访问量超过1000万次,并荣获“2018年福建省教学成果二等奖”和“2018年厦门大学教学成果特等奖”。我们团队前期9本大数据教材的写作,为笔者撰写本书提供了很好的经验借鉴,使得笔者对如何安排本书知识结构有了更清晰的认识。笔者从2002年开始就专门从事数据库和数据挖掘的研究,过去近20年的研究和项目经验积累,也为本书的撰写打下了较好的基础。
●本书内容
本书共8章,详细介绍了大数据领域数据采集与预处理的相关理论和技术。
第1章概要性地介绍数据采集的概念、要点、数据源、数据采集方法、数据清洗、数据转换和数据脱敏;
第2章介绍大数据实验环境的搭建,包括Python、JDK、MySQL、Hadoop等软件的安装和使用方法,本章是后续章节开展实验操作的基础;
第3章介绍网络数据采集的方法,包括网络爬虫的概念、网页爬取与解析方法、Scrapy框架等;
第4章介绍分布式发布订阅消息系统Kafka的原理、安装和使用方法,并给出了Python操作Kafka的方法以及Kafka和MySQL的组合使用方法;
第5章介绍日志采集系统Flume的原理、安装和使用方法,包括Flume和Kafka的组合使用、采集日志文件到HDFS、采集MySQL数据到HDFS等;
第6章介绍数据仓库中的数据集成,包括数据集成方式、数据分发方式和数据集成技术;
第7章介绍ETL工具Kettle的安装和使用方法,并通过实例演示了使用Kettle转化MySQL数据库中的数据、把Excel文件导入到MySQL数据库中、把文本文件导入到MySQL数据库中、把本地文件加载到HDFS中以及把HDFS文件加载到MySQL数据库中的具体方法;
第8章介绍了如何使用pandas进行数据清洗,并通过4个综合实例展示了pandas的应用方法。
本书在构建大数据实验环境时,采用了Windows系统,没有采用Linux系统,主要是为了降低实验环境搭建门槛,降低教学难度,确保学生顺利完成实验。对于实际的企业大数据应用场景而言,一般都是采用Linux系统,为了让教学环境更加贴近企业实际生产环境,教学环节按道理应当首选Linux系统。实际上,笔者此前撰写的《大数据技术原理与应用》《大数据基础编程、实战和案例教程》《Spark编程基础》《Flink编程基础》等大数据教材,都采用了Linux系统。但是,本书在高校开课时,开课时间要早于《大数据技术原理与应用》《大数据基础编程、实战和案例教程》《Spark编程基础》《Flink编程基础》等教材的开课时间,在使用本书开课时,学生基本上还没有学习过大数据核心课程,也没有搭建过大数据实验环境,如果直接使用Linux系统开课,由于大数据各种软件在Linux系统下安装会比较繁琐,这就会给学生学习带来很大障碍,直接导致很多实验无法开展。因此,为了让教学实验环节能够顺利开展,笔者决定使用Windows系统来搭建大数据实验环境。
●本书特色
1.容易开展上机实践操作。本书采用Windows系统搭建实验环境,以Python作为编程语言,入门门槛低,很容易完成书上的各种上机实验。
2.包含丰富的实验案例。数据采集与预处理是一门注重培养学生动手能力的课程,为了提高学生的动手能力,全书提供了丰富的实验案例。
3.提供丰富的教学配套资源。为了帮助高校一线教师更好地开展教学工作,本书配套了丰富的教学资源,如讲义PPT、教学大纲、实验手册以及在线自主学习平台等。

●使用指南
本书共8章,授课教师可按模块化结构组织教学。下面的“学时建议表”给出了具体的学时建议。
学时建议表
章节 24学时
第1章 概述 2
第2章 实验环境搭建 2
第3章 网络数据采集 4
第4章 分布式消息系统Kafka 2
第5章 日志采集系统Flume 2
第6章 数据仓库中的数据集成 2
第7章 ETL工具Kettle 4
第8章 使用pandas进行数据清洗 6

此外,各位选用了本书的授课教师,可以通过人邮教育社区(www.ryjiaoyu.com),免费下载本书配套的丰富教学资源。
本书由林子雨执笔。在撰写过程中,厦门大学计算机科学系硕士研究生郑宛玉、陈杰祥、陈绍纬、周伟敬、阮敏朝、刘官山、黄连福等做了大量辅助性工作,在此,向这些同学的辛勤工作表示衷心的感谢。同时,感谢夏小云老师在书稿校对过程中的辛勤付出。
本教程官方网站是http://dblab.xmu.edu.cn/post/data-collection/,免费提供了全部配套资源的在线浏览和下载,并接受错误反馈和发布勘误信息。同时,在学习大数据课程的过程中,欢迎读者访问厦门大学数据库实验室建设的国内高校首个大数据课程公共服务平台(http://dblab.xmu.edu.cn/post/bigdata-teaching-platform/),该平台为教师教学和学生学习大数据课程提供讲义PPT、学习指南、备课指南、上机习题、技术资料、授课视频等全方位、一站式免费服务。
本书在撰写过程中,参考了大量网络资料,对大数据技术及其典型软件进行了系统梳理,有选择性地把一些重要知识纳入本书。由于笔者能力有限,本书难免存在不足之处,望广大读者不吝赐教。

林子雨
厦门大学计算机科学系数据库实验室
2021年9月

详情页

目录

第1章 概述 1
1.1 数据 1
1.1.1数据的概念 1
1.1.2数据类型 2
1.1.3数据组织形式 2
1.1.4数据的价值 3
1.1.5数据爆炸 3
1.2 数据分析过程 4
1.3 数据采集与预处理的任务 4
1.4数据采集 5
1.4.1数据采集概念 5
1.4.2数据采集的三大要点 5
1.4.3数据采集的数据源 6
1.4.4数据采集方法 7
1.5数据清洗 8
1.5.1 数据清洗的应用领域 8
1.5.2 数据清洗的实现方式 9
1.5.3数据清洗的内容 9
1.5.4 数据清洗的注意事项 10
1.5.5 数据清洗的基本流程 10
1.5.6 数据清洗的评价标准 11
1.6 数据集成 11
1.7 数据转换 12
1.7.1数据转换策略 12
1.7.2 平滑处理 12
1.7.3 规范化处理 14
1.8数据脱敏 15
1.8.1数据脱敏原则 16
1.8.2数据脱敏方法 16
1.9本章小结 17
1.10习题 17
第2章 实验环境搭建 18
2.1 Python的安装和使用 18
2.1.1 Python简介 18
2.1.2 Python的安装 19
2.1.3 Python的基本使用方法 20
2.1.4 Python基础语法知识 22
2.1.5 Python第三方模块的安装 26
2.2 JDK的安装 26
2.3 MySQL数据库的安装和使用 28
2.3.1 关系数据库 28
2.3.2关系数据库标准语言SQL 29
2.3.3安装MySQL 31
2.3.4 MySQL数据库的使用方法 34
2.3.5使用Python操作MySQL数据库 35
2.4 Hadoop的安装和使用 39
2.4.1 Hadoop简介 39
2.4.2 分布式文件系统HDFS 40
2.4.3 Hadoop的安装 42
2.4.4 HDFS的基本使用方法 44
2.5 本章小结 46
2.6 习题 46
实验1:熟悉MySQL和HDFS操作 46
一、实验目的 46
二、实验平台 46
三、实验内容 47
四、实验报告 48
第3章 网络数据采集 49
3.1 网络爬虫概述 49
3.1.1什么是网络爬虫 49
3.1.2网络爬虫的类型 49
3.1.3反爬机制 50
3.2 网页基础知识 51
3.2.1 超文本和HTML 51
3.2.2 HTTP 51
3.3 用Python实现HTTP请求 52
3.3.1 urllib模块 52
3.3.2 urllib3模块 53
3.3.3 requests模块 54
3.4 定制requests 54
3.4.1 传递URL参数 55
3.4.2 定制请求头 55
3.4.3 网络超时 56
3.5解析网页 56
3.5.1 BeautifulSoup简介 56
3.5.2 BeautifulSoup四大对象 58
3.5.3遍历文档树 60
3.5.4 搜索文档树 65
3.5.5 CSS选择器 67
3.6 综合实例 69
3.6.1 采集网页数据并解析成指定的格式 69
3.6.2 采集网页数据保存到文本文件 70
3.6.3 采集网页数据保存到MySQL数据库 73
3.7 Scrapy爬虫 75
3.7.1 Scrapy爬虫概述 75
3.7.2 XPath语言 77
3.7.3 Scrapy爬虫实例 81
3.8 本章小结 88
3.9 习题 88
实验2 网络爬虫初级实践 89
一、实验目的 89
二、实验平台 89
三、实验内容 89
四、实验报告 90
第4章 分布式消息系统Kafka 91
4.1 Kafka简介 91
4.1.1Kafka的特性 91
4.1.2 Kafka的应用场景 91
4.1.3 Kafka的消息传递模式 92
4.2 Kafka在大数据生态系统中的作用 93
4.3 Kafka与Flume的区别与联系 94
4.4 Kafka相关概念 94
4.5 Kafka的安装和使用 96
4.5.1 安装Kafka 96
4.5.2 使用Kafka 96
4.6 使用Python操作Kafka 97
4.7 Kafka与MySQL的组合使用 100
4.8 本章小结 102
4.9 习题 102
实验3 熟悉Kafka的基本使用方法 102
一、实验目的 102
二、实验平台 103
三、实验内容 103
四、实验报告 103
第5章 日志采集系统Flume 105
5.1 Flume简介 105
5.2Flume的安装和使用 105
5.2.1 Flume的安装 106
5.2.2 Flume的使用 106
5.3 Flume和Kafka的组合使用 110
5.4 采集日志文件到HDFS 111
5.4.1 采集目录到HDFS 111
5.4.2 采集文件到HDFS 113
5.5采集MySQL数据到HDFS 114
5.5.1 准备工作 115
5.5.2 创建MySQL数据库 116
5.5.3 配置和启动Flume 116
5.6 本章小结 119
5.7 习题 119
实验4:熟悉Flume的基本使用方法 119
一、实验目的 119
二、实验平台 119
三、实验内容 120
四、实验报告 121
第6章 数据仓库中的数据集成 122
6.1 数据仓库概念 122
6.1.1 传统的数据仓库 122
6.1.2实时主动数据仓库 123
6.2数据集成 124
6.2.1数据集成方式 124
6.2.2数据分发方式 125
6.2.3数据集成技术 125
6.3 ETL 126
6.3.1 ETL简介 126
6.3.2 ETL基本模块 127
6.3.3 ETL模式 128
6.3.4 ETL工具 129
6.4 CDC 130
6.4.1特性 130
6.4.2组成 131
6.4.3具体应用场景 131
6.4.4需要考虑的问题 132
6.5 本章小结 133
6.6 习题 133
第7章 ETL工具Kettle 134
7.1 Kettle的基本概念 134
7.2 Kettle的基本功能 135
7.3 安装Kettle 138
7.4 数据抽取 139
7.4.1 把文本文件导入到Excel文件中 139
7.4.2 把文本文件导入MySQL数据库中 145
7.4.3 把Excel文件导入到MySQL数据库中 153
7.5 数据清洗与转换 161
7.5.1 使用Kettle实现数据排序 161
7.5.2 在Kettle中用正则表达式清洗数据 166
7.5.3 使用Kettle去除缺失值 172
7.5.4 使用Kettle转化MySQL数据库中的数据 182
7.6 数据加载 192
7.6.1把本地文件加载到HDFS中 192
7.6.2把HDFS文件加载到MySQL数据库中 201
7.7 本章小结 210
7.8 习题 210
实验5 熟悉Kettle的基本使用方法 210
一、实验目的 210
二、实验平台 210
三、实验内容 211
四、实验报告 212
第8章 使用pandas进行数据清洗 213
8.1 NumPy的基本使用方法 213
8.1.1 数组创建 213
8.1.2 数组索引和切片 215
8.1.3 数组运算 216
8.2 pandas数据结构 217
8.2.1Series 217
8.2.2 DataFrame 220
8.2.3索引对象 226
8.3 基本功能 226
8.3.1 重新索引 227
8.3.2 丢弃指定轴上的项 229
8.3.3 索引、选取和过滤 230
8.3.4 算术运算 231
8.3.5 DataFrame和Series之间的运算 232
8.3.6 函数应用和映射 233
8.3.7 排序和排名 235
8.3.8分组 238
8.3.9 shape函数 241
8.3.10 info()函数 242
8.3.11 cut()函数 242
8.4 汇总和描述统计 244
8.4.1 与描述统计相关的函数 244
8.4.2 唯一值、值计数以及成员资格 246
8.5 处理缺失数据 248
8.5.1检查缺失值 249
8.5.2清理/填充缺失值 249
8.5.3 丢失缺少的值 250
8.6 综合实例 251
8.6.1 Matplotlib的使用方法 251
8.6.2实例1:对一个数据集进行基本操作 256
8.6.3实例2:百度搜索指数分析 257
8.6.4实例3:电影评分数据分析 259
8.6.5实例4:APP行为数据预处理 263
8.7 本章小结 274
8.8 习题 274
实验6 pandas数据清洗初级实践 275
一、实验目的 275
二、实验平台 275
三、实验内容 275
四、实验报告 276



读者评论

赶紧抢沙发哦!

我要评论

作者介绍

林子雨(1978-),男,博士,国内高校知名大数据教师,厦门大学计算机科学系副教授,厦门大学信息学院实验教学中心主任,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员,中国高校首个“数字教师”提出者和建设者。2013年开始在厦门大学开设大数据课程,建设了国内高校首个大数据课程公共服务平台,平台累计网络访问量超过1000万次,成为全国高校大数据教学知名品牌,并荣获“2018年福建省教学成果二等奖”和“2018年厦门大学教学成果特等奖”,主持的课程《大数据技术原理与应用》获评“2018年国家精品在线开放课程”和“2020年国家级线上一流本科课程”,主持的课程《Spark编程基础》获评“2020年福建省线上一流本科课程”。

推荐用户

购买本书用户

相关图书

人邮微信
本地服务
人邮微信
教师服务
二维码
读者服务
读者服务
返回顶部
返回顶部