- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第18章大数据的处理与学习
学习目标理解管理海量数据的挑战了解大数据管理的程序库,并能使用这些程序库进行简单操作了解使用海量数据进行机器学习的一些方法
管理海量数据的挑战使用python的pandas等模块进行数据读取和处理时,所有数据都需要被读入电脑内存当前个人电脑的内存大小通常都是8GB到16GB,很少超过200GB在对海量数据(比如TB级别的交易数据)使用机器学习算法时来进行数据分析时,需要考虑到内存以及其他计算机硬件的限制例如,支付宝的月度活跃用户量超过十亿,这些用户每天都会会产生大量的支付数据。假设这些用户每个月产生50次交易,每次交易中记录10个变量(例如,交易金额,交易时间,交易双方的信息等),用8个字节的变量来存储这些信息,这样每个月得到的数据量会超过3TB
大数据的管理管理大数据时,我们无法将所有的数据读入电脑内存,需要设法将较大的数据切割成较小的数据,并且将切割后的数据分别读入内存进行处理在Python语言的的生态系统中,人们经常使用Dask和Spark这两个程序库来将较大的数据切割成较小的数据,并且将切割后的数据分别读入内存进行处理。接下来将主要以dask作为例子来阐述如何管理海量数据,并且简单介绍ApacheSpark框架以及在Pthon中调用Spark的程序库PySpark
Dask简介Dask是一个基于Python语言的程序库,支持大数据并行计算Dsak的优点是其与pandas非常相似dask的数据帧(dataframe)是由一个或是多个pandas的数据帧组合而成基本上pandas上所有的功能都能在dask程序库中找到对应Dask通过分解和调度计算任务,高效管理内存以及利用并行计算,使得处理大数据变得更加简单高效
Dask简介Dask的特点懒惰执行(LazyExecution):Dask会等到真正需要计算结果时才开始计算。你编写Dask代码实际上是在创建一个计算任务的计划,而非立即执行计算任务调度(TaskScheduling):Dask会把大的计算任务分解成很多小的任务,然后根据任务之间的依赖关系来安排它们的执行顺序内存管理(MemoryManagement):Dask在处理大数据时会很智能地管理内存,确保数据在需要时被加载到内存中,并在不再需要时释放内存
Dask简介Dask的特点并行与分布式计算(ParallelandDistributedComputing):Dask可以利用电脑上的多个核心进行并行计算,也可以跨多台机器进行分布式计算,这样可以加快计算速度,处理更大的数据与Pandas,NumPy和Scikit-Learn集成:Dask提供了与Pandas,NumPy,Scikit-Learn非常相似的接口,可以很容易地将现有的代码转换为可在Dask上运行的版本
Dask与Pandas
Dask与PandasDask数据帧与Pandas的最大区别是在许多操作中,需要使用.compute()来进行执行例如,如果df是一个Dask数据帧,那么df_filtered=df[df[‘column’]0]这行程序不会直接得到数据帧df_filtered,而是得到一个将要执行任务的任务图。只有执行df_filtered=df[df[‘column’]0].compute()时,Dask才会执行这一任务。因此只有加上.compute()才会得到一个新的数据帧。
ApacheSpark简介ApacheSpark是一个用于大规模数据处理的统一分析引擎提供了Java、Scala、Python(PySpark)和R的高级API,以及一个优化的引擎,支持数据分析的通用计算图Spark的主要特点是其内存集群计算,可以提高应用程序的处理速度。Spark旨在涵盖各种工作负载,如批量应用程序、迭代算法、交互式查询和流处理。它支撑了一系列的库,包括SQL和DataFrame、MLlib(机器学习)、GraphX(图处理)和StructuredStreaming(增量计算和流处理)。Dask与ApacheSpark有着许多相似的功能ApacheSpark的生态更为成熟但是Dask为Python用户提供了简单易用的大数据管理以及处理的功能
ApacheSpark与PySparkPySpark是Spark的PythonAPIPySpark支持Spark的大部分特性,如SparkSQL、DataFrame、Streaming、MLlib(机器学习)和SparkCo
文档评论(0)