内容正文:
浙教版(2019) 必修1 数据与计算
4.2大数据处理
1
学习目标
1.了解大数据处理的基本思想与架构(学科核心素养:信息意识)
2.能够编程处理数据,进行文本数据处理
(学科核心素养:信息意识、计算思维)
3.能够根据实际问题,选择恰当的方式把数据可视化,提升利用数字化工具解决实际问题的能力,进而提升信息技术学科素养。(学科核心素养:信息意识、数字化学习与创新)
2
新课导入
观看图片:生活中常见的大数据
3
新课导入
观看图片:生活中常见的大数据
4
新课导入
观看图片:生活中常见的大数据
5
新课导入
观看图片:生活中常见的大数据
6
新课导入
同学们,这些都是大数据在生活中的应用,前面咱们也学习了如何处理表格数据。大数据具有数据量大、数据来源与类型多样、处理速度快等特点,简单的表格处理软件已经无法满足大数据的处理需求,同时,大数据技术、理论和处理方法也在不断发展,为大数据的处理提供了越来越有力的支持。
7
任务探究
任务一: 大数据处理的基本思想与架构
1.了解大数据处理的基本思想与架构
小组为单位,结合课本及网络资源总结归纳大数据处理的基本思想与框架,并填写下表,班级分享。
大数据处理的基本思想与架构
8
任务探究
大数据处理的基本思想与架构
处理大数据时,一般采用分治思想。分治,字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多个相同或相似的子问题,找到求这几个子问题的解法后,再找出合适的方法把它们组合成求整个问题的解法。如果这些子问题还难以解决,可以再把它们分成几个更小的子问题,以此类推,直至可以直接求出解为止。
在数据量较小的情况下,程序的处理速度是非常快的。如果数据量、单词词汇量非常大(数十亿),那么运行这个程序、处理数据的速度将变得非常慢。随着计算机数量的增加,发生机器故障、网络故障的风险不断增加。这就需要一台或多台计算机负责管理,并运行专门的软件检测计算过程中的故障,在检测到故障时能重新安排计算任务。这种“分治”的思想就是处理大数据的基本思路。
9
任务探究
任务一: 大数据处理的基本思想与架构
2.了解分布式计算与并行处理
分布式计算(Distributed Computing)是把一个需要非常巨大的计算能力才能解决的问题分成许多小部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。例如,利用分布在世界各地成千上万台闲置计算机的计算能力,分析来自外太空的电信号,探索可能存在的外星智慧生命。
并行处理(Parallel Processing)是计算机系统中能同时执行两个或更多处理的一种计算方法。并行处理的主要目的是节省大型和复杂问题的处理时间。
10
任务探究
任务一: 大数据处理的基本思想与架构
3.了解常见大数据处理类型
目前,大数据处理按照类型可划分为对静态数据的批处理、对流数据的实时计算和对图结构数据的图计算。
11
任务探究
任务二:了解批处理计算
1.了解批处理计算工具,并填写下表。
批处理工具
Hadoop Spark
12
任务探究
任务二:了解批处理计算
1.了解批处理计算工具,并填写下表。
批处理工具
Hadoop Spark
Hadoop是一个可运行于大规模计算机集群上的分布式系统基础架构,适用于静态数据的批处理计算。借助Hadoop,程序员可以在不了解分布式底层细节的情况下,轻松编写分布式并行程序,将其在计算机集群上运行,完成海量数据的存储与分析。 Spark是一种与Hadoop相似的、应用较广的开源分布式计算架构。Spark启用了内存存储中间结果,运行速度比Hadoop快很多。
13
任务探究
任务二:了解批处理计算
2.了解Hadoop的发展史及组成
Hadoop Hadoop的发展史
Hadoop的发展史:Hadoop 诞生于 2002 年的 Apache Nutch 项目。2006 年,Hadoop 从 Nutch 中独立出来成为顶级项目。2008 年,Hadoop 成为 Apache 顶级项目,被广泛应用于大数据处理领域。随后,其不断发展完善,功能日益强大。众多企业开始采用 Hadoop 处理海量数据,如日志分析、数据仓库等。如今,Hadoop 生态系统不断丰富,包括 Hive、HBase 等组件,为大数据存储、计算和分析提供了强大的解决方案,在全球范围内持续发挥着重要作用。
14
任务探究
任务二:了解批处理计算
2.了解Hadoop的发展史及组成
15
任务探究
任务二:了解批处理计算
3.自主阅读课本124-126页内容,了解分布式数据库HBase、分布式并行计算模型MapReduce、分布式文件系统HDFS等。
分布式文件系统HDFS
HBase是一个高可靠、高性能、可伸缩、分布式的列式数据库,是谷歌BigTable数据库的开源实现。与传统关系型数据库采用基于行的存储形式、用于管理表格类的结构化数据不同,HBase建立在HDFS提供的底层存储基础上,采用基于列的存储方式,主要用来存储非结构化数据和半结构化数据,具有良好的横向扩展能力,可管理PB级的大数据。
分布式并行计算模型MapReduce,MapReduce是一种分布式并行编程模型,能够处理大规模数据集的并行运算,主要由Map(映射)和Reduce(归纳) 2个函数构成。HDFS提供了分布式计算时每个节点服务器对数据的访问,HDFS 与MapReduce 的结合,使得在处理大数据的过程中计算性能、数据容错性得到了保障。 分布式文件系统HDFS
Windows的文件系统采用FAT32或NTFS,Linux的文件系统为Ext2/Ext3/Ext4,这些文件系统均不能满足分布式文件的管理需求。Hadoop分布式文件系统(Hadoop Distributed File System,简称HDFS)是谷歌文件系统(Google File System,简称GFS)的开源实现。
它的主要功能是将大规模海量数据以文件的形式、用多个副本保存在不同的存储节点中,并用分布式系统进行管理。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。
16
任务探究
任务二:了解批处理计算
当 数 据 量 很 大 时, 一 台 服 务 器的 处 理 能 力 无 法 满 足 需 求, 这 时,MapReduce分布式并行计算的优势就体现出来了,它的核心处理思想是将任务分解并分发到多个节点上进行处理,最后汇总输出。如图4.2.3所示,大数据集拆分为多个分片数据后分发到多个服务器中,Map函数把处理要求映射为多个map任务在节点服务器进行计算处理,节点任务处理完成后由Reduce函数归纳计算结果并输出。
17
任务探究
任务三:了解流计算
流计算产生背景:
Hadoop的设计初衷是面向大规模的批量处理,适用于处理静态数据,在流数据实时处理时明显性能不足,比如大型购物网站的广告推荐、社交网络的个性化推荐、根据交通路况实时更新导航线路等应用场景。随着数据处理量及实时性要求的提高,诞生了专门处理流数据的计算平台,如图4.2.4所示。
18
任务探究
任务三:了解流计算
流计算特点:
通过流计算系统,可以简单、高效、可靠地实现实时数据的获取、传输和存储,在与数据库、Hadoop、编程语言等整合后可开发出功能强大的实时计算与分析应用。典型的应用如Twitter的社交网络数据处理,采用了如图4.2.5所示的分层数据处理架构,每天可实时处理数十亿事件的数据。
19
任务探究
任务三:了解流计算
常见流计算软件系统 :
处理流数据的软件系统主要有IBM InfoSphere Streams、Twitter Storm、Yahoo! S4、 银河流数据处理平台(淘宝)、Facebook Puma等。Storm和S4是目前较为流行的开源分布式实时计算系统。Heron是Storm的替代产品,其外部接口和Storm保持兼容,在流数据处理性 能方面与Storm相比有了大幅提升。
20
任务探究
任务四:了解图计算
现实世界中的很多数据是以图的形式呈现的,或者是可以转换为图以后再进行分析的,如社交网络、网络浏览与购买行为、传染病的传播路径等。
21
任务探究
任务四:了解图计算
1.图计算软件产生的背景:传统的Hadoop架构在处理大型图计算的问题时性能上明显不足,专业的图计算软件应运而生。
2.目前通用的图处理软件主要包括两类:一类是图数据库,如Neo4j、InfiniteGraph、OrientDB等;
另一类是并行图处理系统,如Google Pregel、Apache Giraph、卡内基梅隆大学的GraphLab、运行于Spark平台的GraphX等。
22
任务探究
任务四:了解图计算
3.以小组为单位,结合生活经验,上网查找资料,列举静态数据、流数据处理实例。
静态数据:假设一家电商公司想要分析过去一个季度的销售数据,这些数据已经存储在数据库中,是相对固定的静态数据。目的是找出最畅销的产品类别、不同地区的销售情况以及顾客购买行为模式等信息,以帮助公司制定下一季度的销售策略。
流数据:考虑一个交通监控系统,它需要实时处理来自各个交通传感器(如摄像头、车速传感器等)的数据。目的是及时发现交通拥堵、交通事故等异常情况,并对交通流量进行实时监测和调控。
23
任务探究
任务五:编程处理数据
背景:使用计算机语言编程,可以更加灵活、深入地进行数据分析和挖掘。
选用Python语言编程进行数据处理,可以调用Python的扩展模块,常用的扩展模块有numpy、scipy、pandas和matplotlib等
numpy模块是Python中做科学计算的基础库,主要提供科学计算中常用的随机数、数组运算等基础函数。
scipy模块是基于numpy构建的一个模块,增强了在高等数学、信号处理、图像处理、统计等方面的处理能力。
pandas模块基于numpy实现,主要用于数据的处理和分析。它提供了大量处理数据的函数和方法,能方便地操作大型数据集。
24
任务探究
任务五:编程处理数据
pandas为例,介绍使用计算机程序设计语言编程进行数据处理的方法。
例1 创建1个Series 结构类型的对象s1,存储3名同学的身高值。
import pandas as pd
s1=pd.Series([166,178,180])
print(s1)
程序编写代码及运行结果
25
任务探究
任务五:编程处理数据
pandas为例,介绍使用计算机程序设计语言编程进行数据处理的方法。
例2 创建1个Series 结构类型的对象s2,存储3名同学的身高值,并指定索引
import pandas as pd
#创建Series对象时指定索引
s2=pd.Series([166,178,180],index=["s01","s02", "s03"])
print(s2)
程序编写代码及运行结果
26
任务探究
任务五:编程处理数据
pandas为例,介绍使用计算机程序设计语言编程进行数据处理的方法。
在例2的基础上,更改通过赋值语句可以修改Series对象中的值。如:
s1[0]=168、s2["s01"]=168。
import pandas as pd
#创建Series对象时指定索引
s1=pd.Series([166,178,180],index=["s01","s02", "s03"])
s2=pd.Series([166,178,180],index=["s01","s02", "s03"])
s1[0]=168
s2["s01"]=168
print(s1)
print(s2)
程序编写代码及运行结果
27
任务探究
任务五:编程处理数据
pandas为例,介绍使用计算机程序设计语言编程进行数据处理的方法。
查看例1中s1对象的index、values属性值。
import pandas as pd
#创建Series对象时指定索引
s1=pd.Series([166,178,180],index=["s01","s02", "s03"])
s2=pd.Series([166,178,180],index=["s01","s02", "s03"])
s1[0]=168
s2["s01"]=168
for i in s1.index:
print(i)
for i in s1.values:
print(i)
程序编写代码及运行结果
28
任务探究
任务五:编程处理数据
例3 使用相等长度列表的字典构建一个DataFrame对象df1,存储3名同学的姓名、性
别、图书借阅次数数据。
import pandas as pd
data={"姓名":["王静怡","张佳妮","李臣武"],"性别":["女","女","男"],"借阅次数":[28,56,37]}
df1=pd.DataFrame(data,columns=["姓名","性别","借阅次数"])
print(df1)
程序编写代码及运行结果
29
任务探究
任务五:编程处理数据
例4 读取Excel文件“test.xlsx”中的数据,创建DataFrame对象df。
import pandas as pd
df=pd.read_excel("test.xlsx")
print(df)
程序编写代码及运行结果
30
任务探究
任务五:编程处理数据
例5 查看df1对象的索引、列标题、值,并将行、列转置。
import pandas as pd
df=pd.read_excel("test.xlsx")
for i in df1.index:
print(i)
for i in df1.values:
print(i)
for i in df1.columns:
print(i)
print(df1.T)
程序编写代码及运行结果
31
任务探究
任务五:编程处理数据
例6 分别检索df1对象中“姓名”“借阅次数”列数据,并修改“借阅次数”列数据。
import pandas as pd
df=pd.read_excel("test.xlsx")
print(df1.姓名)
print(df1["借阅次数"])
df1.借阅次数=[30,52,68]
print(df1)
程序编写代码及运行结果
32
任务探究
任务五:编程处理数据
DataFrame常用函数
33
任务探究
任务五:编程处理数据
利用 matplotlib 模块绘图:matplotlib是一个绘图库,使用其中的pyplot子库所提供的函数可以快速绘图和设置图表的坐标轴、坐标轴刻度、图例等
34
任务探究
任务五:编程处理数据
例10:使用其中的pyplot子库,绘制正弦曲线图。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y1 = np.sin(x)
y2 = np.sin(x**2)
plt.figure(figsize=(8,4)) #创建图表对象
plt.title("sin(x) and sin(x**2)")
#设置图表标题文字
plt.plot(x,y1,label="sin(x)",color="r",linewidth=2) #绘制线形图
plt.scatter(x,y2,label="sin(x**2)") #绘制散点图
plt.ylim(-1.5,1.5) #设置y坐标轴的取值范围
plt.xlim(0,10)
#设置x坐标轴的取值范围
plt.legend()
#显示图例
plt.show()
程序编写代码及运行结果
35
任务探究
任务五:编程处理数据
利用 Python分析数据实践:自主阅读课本136-138页内容了解利用python分析姓氏的方法。本次数据处理的
目的是统计全部数据中不同姓氏的人数,并通过排序和图表进一步分析。
36
任务探究
任务六:文本数据处理
文本数据处理是大数据处理的重要分支之一,目的是从大规模的文本数据中提取出符合需要的、感兴趣的和隐藏的信息。文本数据处理主要应用在搜索引擎、情报分析、自动摘要、自动校对、论文查重、文本分类、垃圾邮件过滤、机器翻译、自动应答等方面。
文本数据处理的一般过程
37
任务探究
任务六:文本数据处理
中文分词:常用的中文分词算法可分为如下三类
①基于词典的分词方②基于统计的分词方法③基于规则的分词方法
38
任务探究
任务六:文本数据处理
中文分词特征提取 :
在中文文本分析中可以采用字、词或短语作为表示文本的特征项。相比较而言,词的切分难度比短语的切分难度小且更能表达文本的含义。目前,大多数中文文本分析中都采 用词作为特征项,这种词称作特征词,通常可直接用分词算法和词频统计得出的结果作为特征词,但对于稍大一些的文本,提取出的特征词数量将非常大,其计算处理过程的效率非常低,计算结果的准确性也很难令人满意。
特征提取一般采用的方式为根据专家的知识挑选有价值的特征,或者用数学建模的方法构造评估函数自动选取特征等。目前大多采用评估函数进行特征提取的方式, 评估函数大多是基于概率统计设计的,这就需要用庞大的训练数据集才能获得对分类起关键作用的特征。
39
任务探究
任务六:文本数据处理
中文分词特征提取 :
在中文文本分析中可以采用字、词或短语作为表示文本的特征项。相比较而言,词的切分难度比短语的切分难度小且更能表达文本的含义。目前,大多数中文文本分析中都采 用词作为特征项,这种词称作特征词,通常可直接用分词算法和词频统计得出的结果作为特征词,但对于稍大一些的文本,提取出的特征词数量将非常大,其计算处理过程的效率非常低,计算结果的准确性也很难令人满意。
特征提取一般采用的方式为根据专家的知识挑选有价值的特征,或者用数学建模的方法构造评估函数自动选取特征等。目前大多采用评估函数进行特征提取的方式, 评估函数大多是基于概率统计设计的,这就需要用庞大的训练数据集才能获得对分类起关键作用的特征。
40
任务探究
任务六:文本数据处理
文本数据分析与应用-中文分词案例:
import jieba #引用jieba分词模块
text = open(r"C:\Users\hp\Desktop\filename.txt","r",encoding="utf-8").read() #读入文本文件
seg_list = jieba.cut(text, cut_all = True) #全模式分词
print("全模式分词:", '' ''.join(seg_list)) #输出分词结果
seg_list = jieba.cut(text) #默认模式分词
print("默认模式:", '' ''.join(seg_list)) #输出默认模式分词结果
运行结果见下图:
41
任务探究
任务六:文本数据处理
文本数据分析与应用--爬取文本案例代码:
import requests
from bs4 import BeautifulSoup
url = "自选网址"
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')
# 假设文章内容在特定的标签中,比如<p>标签
article_content = ""
for p in soup.find_all('p'):
article_content += p.text + '
'
print(article_content)
运行结果
42
任务探究
任务六:文本数据处理
文本数据分析与应用--标签云
标签云用词频表现文本特征,将关键词按照一定的顺序和规律排列,如频度递减、字母顺序等,并以文字大小的形式代表词语的重要性,如图4.2.15所示。标签云广泛应用于报纸、杂志等传统媒体和互联网
43
任务探究
任务六:文本数据处理
文本数据分析与应用--文本情感分析
文本情感分析是指通过计算机技术对文本的主观性、观点、情绪、极性进行挖掘和分析,对文本的情感倾向做出分类判断。文本情感分析作为一个多学科交叉的研究领域,涉及自然语言处理、信息检索、机器学习、人工智能等领域。例如:北京城市数据映像”项目通过采集北京地区的微博数据进行了情感分析的研究,用不同的颜色表示心情,在区域地图上展示了不同地域人们在不同时间点情绪的变化
44
任务探究
任务七:数据可视化
数据可视化是将数据以图形图像等形式表示,直接呈现数据中蕴含信息的处理过程。随着数据数量的不断增加和结构的多元化,直接从数据中获取信息变得困难,将数据以可视化方式展现出来,使用户可以通过直观、交互的方式浏览和观察数据,发现数据中隐藏的特征、关系和模式。
45
任务探究
任务七:数据可视化
1.结合课本自主总结归纳数据可视化的作用,并填写下表
数据可视化作用
数据可视化作用
(1)快捷观察与追踪数据
(2)实时分析数据
(3)增强数据的解释力与吸引力
46
任务探究
任务七:数据可视化
2.结合课本自主总结归纳数据可视化的基本方法,并填写下表。
可视化的基本方法
可视化的基本方法
(1)有关时间趋势的可视化
(2)有关比例的可视化
(3)有关关系的可视化
(4)有关差异的可视化
(5)有关空间关系的可视化
47
任务探究
任务七:数据可视化
3.了解常见的可视化工具
常见的数据分析软件中一般包含创建可视化图表功能。主要用于数据可视化的工具有大数据魔镜、Gephi、Tableau等,也可以使用Python、R等计算机语言编写程序实现数据的可视化。此外,还有一些优秀的可视化工具库,如基于javaScript的D3.js、Highcharts、Google Charts等,基于Python的matplotlib等
48
任务探究
任务七:数据可视化
4.了解可视化的典型案例:以小组为单位结合课本148-150页的内容,讨论分析一下不同类型可视化图表的实现方法和作用。
(1)风、气象、海洋状况的全球地图
(2)编程语言之间的影响力关系图
(3)“双十一”全网销售直播图
(4)航班飞行实时跟踪地图
(5)微博热词趋势图
49
课堂练习
(1)以下关于 Hadoop 的说法,错误的是( )。
A. Hadoop 包括 HDFS(分布式文件系统)和 MapReduce 计算框架
B. Hadoop 可以高效处理大规模数据
C. Hadoop 是一种单机数据处理工具
D. Hadoop 集群可以通过增加节点来扩展性能
答案:C
解析:Hadoop 是一个分布式的系统,不是单机数据处理工具。它的核心组件包括 HDFS 用于分布式文件存储,MapReduce 用于分布式计算,能够处理大规模的数据,并且可以通过在集群中添加节点来提升处理性能。
50
课堂练习
(2)以下哪种大数据处理技术可以用于处理图数据?( )
A. Neo4j
B. MySQL
C. PostgreSQL
D. SQLite
答案:A
解析:Neo4j 是一个图数据库,专门用于处理图数据,如社交网络关系、知识图谱等。MySQL、PostgreSQL 和 SQLite 主要是关系数据库,虽然可以在一定程度上表示关系,但对于复杂的图数据处理能力不如 Neo4j。
51
课堂小结
1.学生思考并总结分享本节课收获,各同学之间互相补充。
2.教师出示本节课思维导图,回顾本节课所学知识,本节课思维导图如下:
52
作业布置
1.完成分层作业。
2.尝试列举文本数据处理的应用领域以及将来可能的应用。
53
THANKS
谢谢大家
$$