PySpark实战指南:利用Python和Spark构建数据密集型应用并规模化部署

PySpark实战指南:利用Python和Spark构建数据密集型应用并规模化部署 pdf epub mobi txt 电子书 下载 2025

[美] 托马兹·卓巴斯(Tomasz Drabas),丹尼·李(Denny Lee) 著,栾云杰 译
图书标签:
  • PySpark
  • 大数据
  • 数据分析
  • 数据挖掘
  • Python
  • Spark
  • 数据工程
  • 机器学习
  • 分布式计算
  • 规模化部署
想要找书就要到 静流书站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
出版社: 机械工业出版社
ISBN:9787111582380
版次:1
商品编码:12236677
品牌:机工出版
包装:平装
丛书名: 大数据技术丛书
开本:16开
出版时间:2017-11-01
用纸:胶版纸
页数:186

具体描述

内容简介

本文从Spark的基本特点出发,借助大量例子详细介绍了如何使用Python调用Spark新特性、处理结构化及非结构化数据、使用PySpark中基本可用数据类型、生成机器学习模型、进行图像操作以及阅读串流数据等新兴技术内容。

目录

译者序

前言
关于作者
第1章 了解Spark 1
1.1 什么是Apache Spark 1
1.2 Spark作业和API 2
1.2.1 执行过程 2
1.2.2 弹性分布式数据集 3
1.2.3 DataFrame 4
1.2.4 Dataset 5
1.2.5 Catalyst优化器 5
1.2.6 钨丝计划 5
1.3 Spark 2.0的架构 6
1.3.1 统一Dataset和DataFrame 7
1.3.2 SparkSession介绍 8
1.3.3 Tungsten Phase 2 8
1.3.4 结构化流 10
1.3.5 连续应用 10
1.4 小结 11
第2章 弹性分布式数据集 12
2.1 RDD的内部运行方式 12
2.2 创建RDD 13
2.2.1 Schema 14
2.2.2 从文件读取 14
2.2.3 Lambda表达式 15
2.3 全局作用域和局部作用域 16
2.4 转换 17
2.4.1 .map(...)转换 17
2.4.2 .filter(...)转换 18
2.4.3 .flatMap(...)转换 18
2.4.4 .distinct(...)转换 18
2.4.5 .sample(...)转换 19
2.4.6 .leftOuterJoin(...)转换 19
2.4.7 .repartition(...)转换 20
2.5 操作 20
2.5.1 .take(...)方法 21
2.5.2 .collect(...)方法 21
2.5.3 .reduce(...)方法 21
2.5.4 .count(...)方法 22
2.5.5 .saveAsTextFile(...)方法 22
2.5.6 .foreach(...)方法 23
2.6 小结 23
第3章 DataFrame 24
3.1 Python到RDD之间的通信 24
3.2 Catalyst优化器刷新 25
3.3 利用DataFrame加速PySpark 27
3.4 创建DataFrame 28
3.4.1 生成自己的JSON数据 29
3.4.2 创建一个DataFrame 29
3.4.3 创建一个临时表 30
3.5 简单的DataFrame查询 31
3.5.1 DataFrame API查询 32
3.5.2 SQL查询 32
3.6 RDD的交互操作 33
3.6.1 使用反射来推断模式 33
3.6.2 编程指定模式 34
3.7 利用DataFrame API查询 35
3.7.1 行数 35
3.7.2 运行筛选语句 35
3.8 利用SQL查询 36
3.8.1 行数 36
3.8.2 利用where子句运行筛选语句 36
3.9 DataFrame场景——实时飞行性能 38
3.9.1 准备源数据集 38
3.9.2 连接飞行性能和机场 39
3.9.3 可视化飞行性能数据 40
3.10 Spark数据集(Dataset)API 41
3.11 小结 42
第4章 准备数据建模 43
4.1 检查重复数据、未观测数据和异常数据(离群值) 43
4.1.1 重复数据 43
4.1.2 未观测数据 46
4.1.3 离群值 50
4.2 熟悉你的数据 51
4.2.1 描述性统计 52
4.2.2 相关性 54
4.3 可视化 55
4.3.1 直方图 55
4.3.2 特征之间的交互 58
4.4 小结 60
第5章  MLlib介绍 61
5.1 包概述 61
5.2 加载和转换数据 62
5.3 了解你的数据 65
5.3.1 描述性统计 66
5.3.2 相关性 67
5.3.3 统计测试 69
5.4 创建最终数据集 70
5.4.1 创建LabeledPoint形式的RDD 70
5.4.2 分隔培训和测试数据 71
5.5 预测婴儿生存机会 71
5.5.1 MLlib中的逻辑回归 71
5.5.2 只选择最可预测的特征 72
5.5.3 MLlib中的随机森林 73
5.6 小结 74
第6章 ML包介绍 75
6.1 包的概述 75
6.1.1 转换器 75
6.1.2 评估器 78
6.1.3 管道 80
6.2 使用ML预测婴儿生存几率 80
6.2.1 加载数据 80
6.2.2 创建转换器 81
6.2.3 创建一个评估器 82
6.2.4 创建一个管道 82
6.2.5 拟合模型 83
6.2.6 评估模型的性能 84
6.2.7 保存模型 84
6.3 超参调优 85
6.3.1 网格搜索法 85
6.3.2 Train-validation 划分 88
6.4 使用PySpark ML的其他功能 89
6.4.1 特征提取 89
6.4.2 分类 93
6.4.3 聚类 95
6.4.4 回归 98
6.5 小结 99
第7章 GraphFrames 100
7.1 GraphFrames介绍 102
7.2 安装GraphFrames 102
7.2.1 创建库 103
7.3 准备你的航班数据集 105
7.4 构建图形 107
7.5 执行简单查询 108
7.5.1 确定机场和航班的数量 108
7.5.2 确定这个数据集中的最长延误时间 108
7.5.3 确定延误和准点/早到航班的数量对比 109
7.5.4 哪一班从西雅图出发的航班最有可能出现重大延误 109
7.5.5 西雅图出发到哪个州的航班最有可能出现重大延误 110
7.6 理解节点的度 110
7.7 确定最大的中转机场 112
7.8 理解Motif 113
7.9 使用PageRank确定机场排名 114
7.10 确定最受欢迎的直飞航班 115
7.11 使用广度优先搜索 116
7.12 使用D3将航班可视化 118
7.13 小结 119
第8章 TensorFrames 120
8.1 深度学习是什么 120
8.1.1 神经网络和深度学习的必要性 123
8.1.2 特征工程是什么 125
8.1.3 桥接数据和算法 125
8.2 TensorFlow是什么 127
8.2.1 安装PIP 129
8.2.2 安装TensorFlow 129
8.2.3 使用常量进行矩阵乘法 130
8.2.4 使用placeholder进行矩阵乘法 131
8.2.5 讨论 132
8.3 TensorFrames介绍 133
8.4 TensorFrames快速入门 134
8.4.1 配置和设置 134
8.4.2 使用TensorFlow向已有列添加常量 136
8.4.3 Blockwise reducing操作示例 137
8.5 小结 139
第9章 使用Blaze实现混合持久化

前言/序言

据估计,2013年全世界产生了大约4.4ZB(词头Z代表1021)信息量的数据!而到2020年,预计人类将会产生10倍于2013年的数据量。随着字面上的数字越来越大,加上人们需求的日益增长,为了使这些数据更有意义,2004年来自Google的Jeffrey Dean和Sanjay Ghemawat发表了一篇开创性的论文《MapReduce:Simplified Data Processing on Large Clusters》。至此,利用这一概念的技术开始快速增多,Apache Hadoop也开始迅速变得流行起来,最终创建了一个Hadoop的生态系统,包括抽象层的Pig、Hive和Mahout,都是利用了map和reduce的简单概念。
然而,即使拥有每天都分析过滤海量数据的能力,MapReduce始终是一个限制相当严格的编程框架。此外,大多数的任务还要求读取、写入磁盘。认识到这些缺点,2009年Matei Zaharia将Spark作为他博士课题的一部分开始研究。Spark在2012年首次发布。虽然Spark是基于和MapReduce相同的概念,但其先进的数据处理方法和任务组织方式使得它比Hadhoop要快100倍(对于内存计算)。
在这本书中,我们将指导你使用Python了解Apache Spark的最新性能,包括如何看懂结构化和非结构化的数据,如何使用PySpark中一些基本的可用数据类型,生成机器学习模型,图像操作,阅读串流数据,在云上部署模型。每一章力求解决不同的问题,并且我们也希望看完这本书之后,你可以掌握足够的知识来解决其他我们还没来得及在书中讲解的问题。
本书的主要内容第1章通过技术和作业的组织等概念提供了对Spark的介绍。
第2章介绍了RDD、基本原理、PySpark中可用的非模式化数据结构。
第3章详细介绍了DataFrame数据结构,它可以弥合Scala和Python之间在效率方面的差距。
第4章引导读者了解Spark环境中的数据清理和转换的过程。
第5章介绍了适用于RDD的机器学习库,并回顾了最有用的机器学习模型。
第6章涵盖了当前主流的机器学习库,并且提供了目前可用的所有模型的概述。
第7章引导你了解能轻松利用图解决问题的新结构。
第8章介绍了Spark和张量流(TensorFlow)领域中深度学习(Deep Learning)的连接桥梁。
第9章描述Blaze是如何跟Spark搭配使用以更容易地对多源数据进行抽象化的。
第10章介绍了PySpark中可用的流工具。
第11章一步步地指导你运用命令行界面完成代码模块化并提交到Spark执行。
本书中我们随意使用了Anaconda的预装版Python模块。GraphFrames和TensorFrames也可以在启动Spark实例时动态加载:载入时你的电脑需要联网。如果有的模块尚未安装到你的电脑里,也没有关系,我们会指导你完成安装过程。
本书的读者对象想要学习大数据领域发展最迅速的技术即Apache Spark的每一个人,都可以阅读此书。我们甚至希望还有来自于数据科学领域更高级的从业人员,能够找到一些令人耳目一新的例子以及更有趣的主题。
本书约定警告或重要的笔记提示和技巧下载代码示例你可以从http://www.packtpub.com下载代码文件。你也可以访问华章图书官网通过注册并登录个人账号,下载本书的源代码。
下载本书彩图我们还提供了一个PDF文件,其中包含本书中使用的截图和彩图,可以帮助读者更好地了解输出的变化。
数据分析与应用开发的革命浪潮:掌握PySpark,驾驭海量数据,释放无限可能 在这个数据爆炸的时代,如何有效地处理、分析和利用海量数据,已经成为企业和开发者面临的核心挑战。传统的数据处理方式在面对PB甚至EB级别的数据时,显得力不从心。而分布式计算框架的出现,则为我们打开了通往数据智能新世界的大门。在众多分布式计算框架中,Apache Spark凭借其卓越的性能、易用性和强大的生态系统,迅速成为大数据领域的翘楚。而PySpark,作为Spark的Python API,更是极大地降低了Python开发者进入大数据领域的门槛,让更多人能够借助Python的强大表现力,轻松构建和部署数据密集型应用。 本书并非简单地罗列PySpark的API手册,也不是枯燥的技术术语堆砌。我们旨在为您提供一条清晰、实用且富有洞察力的学习路径,帮助您从零开始,循序渐进地掌握PySpark的核心概念、核心技术,并最终能够独立开发、优化和规模化部署高性能的数据密集型应用。我们将深入浅出地剖析Spark的运行机制,揭示其在分布式计算领域的独特优势;我们将通过丰富的实战案例,引导您亲手构建各种复杂的数据处理管道、机器学习模型以及实时数据流应用。 本书将带您踏上一段深入PySpark世界的旅程,您将收获: 第一部分:奠定坚实基础,理解分布式计算的精髓 为何需要分布式计算? 我们将从问题的根源出发,探讨单机处理的局限性,以及为什么分布式计算成为应对大数据挑战的必然选择。您将理解并行处理、容错机制以及数据分布等关键概念。 Apache Spark的革命性设计: 深入理解Spark的RDD(弹性分布式数据集)模型,它是Spark一切计算的基础。我们将详细解析RDD的创建、转换(transformations)和行动(actions)操作,以及Spark如何通过DAG(有向无环图)调度器实现高效的作业执行。 Spark的核心架构: 了解Spark的Master/Worker架构、Driver和Executor的角色,以及它们如何在集群中协同工作,完成大规模数据处理任务。这将帮助您从宏观上把握Spark的运行流程。 PySpark:Python与Spark的完美结合: 学习如何安装和配置PySpark环境,掌握PySpark的基本语法和API,包括DataFrame和Spark SQL,它们为结构化数据处理带来了前所未有的便利和效率。您将了解如何使用Pythonic的方式表达分布式计算逻辑。 第二部分:掌握核心数据处理能力,驾驭结构化与半结构化数据 DataFrame:结构化数据处理的利器: 深入学习PySpark DataFrame的强大功能。您将掌握数据的加载、转换、过滤、聚合、连接等常用操作,并学会利用Spark SQL进行声明式的数据查询。我们将通过实际数据场景,展示如何高效地清洗、转换和探索数据。 数据清洗与预处理的最佳实践: 在实际数据分析中,数据质量至关重要。本书将为您提供一套系统性的数据清洗和预处理方法,包括缺失值处理、异常值检测、数据格式转换、文本数据预处理等。您将学会如何利用PySpark高效地完成这些任务。 高级数据转换与操作: 探索PySpark DataFrame更高级的转换操作,如窗口函数(window functions)的应用,用于实现复杂的分析场景,例如排名、累积求和等。您还将学习如何进行自定义UDF(用户定义函数)的编写,以满足特定的计算需求。 文件格式与存储: 掌握PySpark与各种常见文件格式(如CSV, JSON, Parquet, ORC)的交互,并了解如何在分布式存储系统(如HDFS, S3)上高效地读写数据。您将学习如何选择合适的文件格式和存储策略,以优化数据访问性能。 第三部分:释放数据洞察力,构建强大的数据分析与机器学习应用 Spark MLlib:分布式机器学习的引擎: 深入探索Spark的机器学习库MLlib。您将学习如何使用MLlib进行数据特征工程,包括特征缩放、编码、降维等。 构建和训练模型: 掌握MLlib提供的各种监督学习和无监督学习算法,例如逻辑回归、线性回归、决策树、随机森林、K-means聚类等。我们将通过实际案例,演示如何构建和训练这些模型。 模型评估与调优: 学习如何使用MLlib提供的评估指标来衡量模型性能,并掌握模型调优的技术,例如交叉验证、网格搜索等,以获得最优的模型参数。 管道(Pipelines)的艺术: 学习如何利用Spark MLlib的Pipeline API,将特征工程、模型训练、模型评估等步骤串联起来,形成端到端的数据科学工作流,简化模型开发和迭代过程。 第四部分:实时数据处理与流式计算,拥抱实时分析的未来 Spark Streaming:实时数据处理的核心: 深入理解Spark Streaming的工作原理,它如何将连续的数据流切分成微批次(micro-batches)进行处理。您将学习如何构建实时的ETL(Extract, Transform, Load)管道。 构建实时数据管道: 学习如何从各种数据源(如Kafka, Kinesis)接收实时数据,并利用PySpark进行实时转换、聚合和分析。您将学会如何处理事件时间、窗口操作等流式计算特有的概念。 结构化流(Structured Streaming):下一代流处理引擎: 探索Spark 2.x引入的革命性技术——结构化流。它将DataFrame和Spark SQL的强大能力带入了流处理领域,让实时数据处理变得更加直观和高效。您将学习如何使用DataFrame API构建复杂的流处理应用。 部署和监控流式应用: 了解如何在生产环境中部署Spark Streaming或结构化流应用,并学习如何监控应用的运行状态,确保数据的实时性和准确性。 第五部分:规模化部署与性能优化,让您的应用驰骋于生产环境 Spark集群部署与管理: 学习如何在各种集群管理器(如YARN, Mesos, Kubernetes)上部署和管理Spark集群。您将了解不同部署模式的优劣,以及如何根据实际需求选择合适的部署方案。 性能调优的艺术: 深入剖析Spark作业的性能瓶颈,掌握各种性能调优的策略和技巧。这包括数据分区、缓存、广播变量、Shuffle优化、内存管理等。您将学会如何使用Spark UI来诊断性能问题。 生产环境的最佳实践: 总结在生产环境中部署和运维PySpark应用的最佳实践,包括代码的可维护性、可测试性、监控告警机制、故障恢复策略等。 与大数据生态系统的集成: 了解PySpark如何与其他大数据组件(如Hive, Hbase, Kafka, Cassandra)无缝集成,构建完整的端到端数据解决方案。 本书的特色: 强调实践导向: 每一章都配有大量的代码示例和实战项目,让您在动手中学习,在实践中成长。 由浅入深,循序渐进: 从基础概念到高级主题,清晰的结构设计确保您能够逐步掌握PySpark的精髓。 深入原理,知其然更知其所以然: 不仅教您如何使用PySpark,更会深入剖析其背后的原理,帮助您从根本上理解其强大之处。 贴近实际应用场景: 案例选取基于真实世界的数据问题,让您学到的知识能够直接应用于解决实际工作中的挑战。 面向广泛的读者群体: 无论您是初入数据科学领域的数据分析师,还是希望扩展技能栈的Python开发者,亦或是寻求解决方案的数据工程师,都能从本书中获益。 掌握PySpark,您将拥有驾驭海量数据的能力,能够构建出高性能、可扩展的数据密集型应用,释放数据中蕴藏的巨大价值。本书将是您在数据科学和大数据领域迈向成功的坚实基石。现在,就让我们一同开启这场激动人心的PySpark之旅吧!

用户评价

评分

作为一名有几年Python数据分析经验的开发者,我一直对Spark这个分布式计算框架心生向往,但总觉得它门槛较高,学习资料也相对零散。这次看到《PySpark实战指南:利用Python和Spark构建数据密集型应用并规模化部署》这本书,感觉像是及时雨。我特别关注书中关于“构建数据密集型应用”的部分,因为在我日常工作中,经常会遇到需要处理海量数据的场景,而传统的单机Python脚本已经难以胜任。这本书的结构设计非常合理,从基础概念的铺垫,到具体功能的讲解,再到实际案例的演示,层层递进,逻辑清晰。我尤其喜欢它在讲解每个概念时,都会附带相应的PySpark代码示例,并且对代码的每一个细节都做了详尽的解释,这对于我这种喜欢动手实践的学习者来说,简直是太友好了。书中还深入探讨了Spark的内存管理、任务调度、容错机制等核心原理,这些都是提升数据处理效率和稳定性的关键。而且,它还强调了如何根据实际业务场景选择合适的Spark组件和优化策略,而不是生搬硬套,这种实用主义的教学方式让我觉得非常受用。

评分

这本书的内容,尤其是关于“规模化部署”的章节,简直是为我量身定做的。我所在的公司正处于快速扩张期,数据量呈指数级增长,现有的数据处理架构已经不堪重负。我们迫切需要引入更强大的工具来支撑业务发展,而PySpark无疑是其中的佼佼者。这本书并没有仅仅停留在理论层面,而是非常注重实践操作,从环境的搭建、集群的配置,到作业的提交、监控和调优,都给出了非常具体的操作步骤和注意事项。我之前一直担心在生产环境中部署和维护Spark集群会非常复杂,但这本书的详细讲解,让我对此有了更强的信心。它还提到了许多在实际生产环境中会遇到的常见问题,以及相应的解决方案,这为我节省了大量摸索的时间。此外,书中还穿插了许多关于性能优化的技巧,比如如何选择合适的数据格式、如何进行RDD的转换和行动操作、如何利用Spark SQL和DataFrame等,这些都是提升应用效率的宝贵经验。总而言之,这本书为我提供了一个从零开始,逐步掌握PySpark并在实际生产环境中成功部署和应用的全方位指导。

评分

说实话,一开始我选择这本书,很大程度上是被“实战指南”这几个字所吸引。我之前也看过一些Spark的入门书籍,但总觉得过于理论化,看完之后仍然不知道如何实际应用。而这本书,从标题上看,就充满了解决实际问题的决心。果然,翻开目录,我就看到了诸如“数据预处理与特征工程”、“模型训练与评估”、“流式数据处理”、“实时分析与可视化”等一系列与实际工作紧密相关的章节。书中的代码示例非常丰富,而且都是经过精心设计的,能够清晰地展示PySpark在各种场景下的应用。我特别喜欢它在讲解过程中,不仅仅是罗列API,而是会深入分析背后的原理,以及在不同场景下如何选择最优的解决方案。这对于我这种希望能够知其然,也知其所以然的读者来说,是极大的帮助。而且,书中还探讨了如何将PySpark应用与现有的数据生态系统集成,以及如何处理大规模数据集时的常见挑战,这些内容对于提升我的实战能力非常有价值。

评分

这本书的封面设计就透露着一股“硬核”的气息,深蓝色的背景搭配金色的立体文字,仿佛预示着即将踏入一个充满挑战但回报丰厚的领域。拿到手里沉甸甸的,一看目录,果然内容翔实,涵盖了从Spark的基础概念到高级特性的方方面面,特别是关于数据密集型应用的构建和规模化部署这部分,更是戳中了我的痛点。我目前的工作中,数据量越来越大,传统的处理方式已经捉襟见肘,而PySpark这个名字,就像是黑暗中的一盏明灯,给了我解决问题的希望。目录中详细列出了如何利用Python和Spark进行数据清洗、转换、聚合、建模等一系列操作,并且强调了实际应用中的最佳实践和性能调优技巧。读到“规模化部署”这几个字,我简直眼前一亮,这正是我最迫切需要学习的内容。我一直担心自己学到的技术无法真正落地,面临实际的生产环境时会束手无策,但这本书似乎为我指明了方向,提供了可以参考的策略和方法。从前期的环境搭建,到后期的集群管理,再到应用的监控和优化,这本书都给出了详细的指导,让我对PySpark的实战应用有了更清晰的认识,也更加期待能够通过这本书,真正掌握这门强大的数据处理利器。

评分

作为一名对分布式计算和大数据处理充满好奇的研究生,我一直在寻找一本能够系统学习PySpark并将其应用于科研项目的书籍。《PySpark实战指南》正好满足了我的需求。这本书的讲解深入浅出,从Spark的基本原理到复杂的应用场景,都梳理得非常清晰。我尤其欣赏书中关于“构建数据密集型应用”的章节,它详细介绍了如何利用PySpark进行大规模数据的ETL、特征提取、机器学习模型训练等过程,这对于我开展大数据分析类研究非常有帮助。书中提供的代码示例不仅易于理解,而且可以直接应用于我的项目,大大缩短了开发周期。更让我惊喜的是,本书还涉及了“规模化部署”的内容,这对于我未来将研究成果转化为实际应用非常有指导意义。我不再担心自己的研究停留在理论层面,而是可以通过这本书,学习如何将PySpark应用部署到实际环境中,并实现高效的数据处理和分析。这本书无疑是我大数据学习道路上的一块重要基石。

评分

就是它了,比学校定的教材便宜点儿

评分

可以就是内容少了点

评分

手感不错,挺好

评分

书很好,这次采购的都是Python,学习走起

评分

赶上618,买200减100活动。集中入手一些Python书籍,Python结合大数据,最佳搭档

评分

京东图书,陪伴一生!技术路上,感受京东品质服务,不错。有更好的电子图书终端和电子书服务就更好了

评分

非常棒。

评分

不太推荐的一本书,讲解不是太好,很多东西很粗,虽然接口介绍不错但是讲解太粗了

评分

不太推荐的一本书,讲解不是太好,很多东西很粗,虽然接口介绍不错但是讲解太粗了

相关图书

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有