商品详情

89.00

利用Dask扩展Python性能 [美] 霍尔顿·卡劳(Holden Karau) 等 著,马宏华 译 清华大学出版社

数量

商品详情

  内容简介

  《利用 Dask 扩展 Python 性能》详细阐述了与 Dask 扩展 Python 性能相关的基本知识,主要包括了解 Dask、Dask 基础操作、Dask

  的工作原理、Dask DataFrame、Dask 的集合、高级任务调度、添加可变状态和 Dask Actor、评估 Dask 的

  组件和库、迁移现有的分析工程、使用 GPU 和其他特殊资源的 Dask、使用 Dask 进行机器学习、生产化

  Dask 等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

  本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和

  参考手册。

  作者简介

  Holden Karau 是 Apache Spark 提交者,Apache 软件基金会成员,也是活跃的开源

  贡献者。作为一名软件工程师,她曾在 Apple、Google、IBM、Alpine、Databricks、Foursquare

  和 Amazon 从事各种分布式计算、搜索和分类问题的研究。她毕业于加拿大滑铁卢大学

  (University of Waterloo),获得过计算机科学数学学士学位。在软件之外,她还喜欢焊

  接、骑车和跳舞等。

  Mika Kimmins 是一名数据工程师、分布式系统研究员和机器学习顾问。她曾是 Apple

  公司的 Siri 数据工程师,也曾是一名学术研究人员和非营利工程人员,她从事过自然语

  言处理(NLP)、语言建模、强化学习和机器学习管道等多种工作。她拥有哈佛大学工

  程科学硕士和 MBA 学位,以及加拿大多伦多大学(University of Toronto)计算机科学和

  数学学士学位。Mika 爱好花样滑冰、空中舞蹈和缝纫。

  目录

  第1章 了解Dask 1

  1.1 需要使用Dask的理由 1

  1.2 Dask在生态系统中的定位 2

  1.2.1 大数据 3

  1.2.2 数据科学 3

  1.2.3 并行分布式Python 4

  1.3 Dask社区库 5

  1.3.1 加速Python 5

  1.3.2 SQL引擎 5

  1.3.3 工作流程调度 6

  1.4 Dask的局限性 7

  1.5 小结 8

  第2章 Dask基础操作 9

  2.1 本地安装Dask 9

  2.2 Hello World 10

  2.2.1 Hello World任务 11

  2.2.2 分布式集合 13

  2.2.3 Dask DataFrame 15

  2.3 小结 16

  第3章 Dask的工作原理:基础知识 17

  3.1 执行后端 17

  3.1.1 本地后端 17

  3.1.2 分布式后端(Dask客户端和调度程序) 18

  3.2 Dask的诊断用户界面 20

  3.3 序列化和Pickling 21

  3.4 分区/分块集合 23

  3.4.1 Dask数组 24

  3.4.2 Dask bag 24

  3.4.3 Dask DataFrame 25

  3.4.4 打乱 25

  3.4.5 加载期间分区 26

  3.5 任务、图和惰性评估 26

  3.5.1 惰性评估 26

  3.5.2 任务依赖关系 27

  3.5.3 可视化 27

  3.5.4 中间任务结果 29

  3.5.5 任务规模调整 29

  3.5.6 当任务图变得太大时 29

  3.5.7 组合计算 30

  3.5.8 持久化、缓存和记忆化 30

  3.6 容错能力 31

  3.7 小结 32

  第4章 Dask DataFrame 33

  4.1 Dask DataFrame的构建方式 33

  4.2 加载和写入 34

  4.2.1 格式 34

  4.2.2 文件系统 39

  4.3 索引 40

  4.4 打乱数据 40

  4.4.1 滚动窗口和map_overlap 41

  4.4.2 聚合 41

  4.4.3 完全打乱 45

  4.4.4 分区 45

  4.5 尴尬的并行操作 47

  4.6 使用多个DataFrame 48

  4.6.1 组合DataFrame的常用函数解析 48

  4.6.2 多DataFrame内部原理 50

  4.6.3 缺失的功能 51

  4.7 无法使用的功能 51

  4.8 较慢的功能 51

  4.9 处理递归算法 52

  4.10 重新计算的数据 52

  4.11 其他函数的差异 52

  4.12 数据科学与Dask DataFrame:综合演练 53

  4.12.1 决定使用Dask 53

  4.12.2 使用Dask进行探索性数据分析 54

  4.13 小结 56

  第5章 Dask的集合 57

  5.1 Dask数组 57

  5.1.1 常见用例 57

  5.1.2 不适用Dask数组的情形 57

  5.1.3 加载/保存 58

  5.1.4 缺失的功能 58

  5.1.5 特殊Dask函数 58

  5.2 Dask bag 59

  5.2.1 常见用例 59

  5.2.2 加载和保存Dask bag 60

  5.2.3 使用Dask bag加载杂乱数据 60

  5.2.4 局限性 64

  5.3 小结 64

  第6章 高级任务调度:Futures 65

  6.1 懒惰评估和急切评估 66

  6.2 Futures的用例 66

  6.3 启动Futures 67

  6.4 Futures生命周期 68

  6.5 即发即弃 69

  6.6 检索结果 69

  6.7 嵌套Futures 72

  6.8 用于调度的分布式数据结构 72

  6.9 小结 73

  第7章 添加可变状态和Dask Actor 75

  7.1 理解Actor模型 75

  7.2 Dask Actor 76

  7.2.1 创建第一个Actor 77

  7.2.2 扩展Dask Actor 79

  7.2.3 局限性 81

  7.3 使用Dask Actor的时机 81

  7.4 小结 82

  第8章 评估Dask的组件和库 83

  8.1 项目评估的定性考虑因素 85

  8.1.1 项目优先级 85

  8.1.2 社区 86

  8.1.3 Dask特定最佳实践 87

  8.1.4 最新的依赖项 88

  8.1.5 文档 88

  8.1.6 贡献的开放程度 89

  8.1.7 可扩展性 89

  8.2 开源项目评估的定量指标 90

  8.2.1 版本历史 90

  8.2.2 提交频率 91

  8.2.3 库的使用情况 91

  8.2.4 代码和最佳实践 93

  8.3 小结 94

  第9章 迁移现有的分析工程 95

  9.1 迁移到Dask中的原因 95

  9.2 Dask的局限性 95

  9.3 迁移路线图 96

  9.3.1 集群类型 96

  9.3.2 开发:注意事项 99

  9.3.3 部署监控 101

  9.4 小结 103

  第10章 使用GPU和其他特殊资源的Dask 105

  10.1 透明加速器与非透明加速器 106

  10.2 了解GPU或TPU是否有帮助 106

  10.3 使Dask具有资源感知能力 107

  10.4 安装库 108

  10.5 在Dask任务中使用自定义资源 109

  10.5.1 装饰器 110

  10.5.2 GPU 111

  10.6 基于Dask的GPU加速 112

  10.6.1 cuDF 112

  10.6.2 BlazingSQL 113

  10.6.3 cuStreamz 113

  10.7 释放加速器资源 113

  10.8 设计模式:CPU回退 113

  10.9 小结 114

  第11章 使用Dask进行机器学习 115

  11.1 并行化机器学习 115

  11.2 使用Dask-ML的时机 116

  11.3 Dask-ML和XGBoost入门 117

  11.3.1 特征工程 117

  11.3.2 模型选择和训练 121

  11.3.3 没有Dask-ML等效项时的解决方案 122

  11.3.4 结合使用Dask joblib 123

  11.3.5 XGBoost与Dask 124

  11.4 使用Dask-SQL的机器学习模型 126

  11.5 推理和部署 129

  11.5.1 手动分发数据和模型 129

  11.5.2 使用Dask进行大规模推理 130

  11.6 小结 132

  第12章 生产化Dask:Notebook、部署、调整和监控 133

  12.1 部署选项中需要考虑的因素 134

  12.2 在Kubernetes上部署Dask 136

  12.3 在Ray上部署Dask 138

  12.4 在YARN上部署Dask 138

  12.5 在高性能计算集群中部署Dask 141

  12.5.1 在远程集群中设置Dask 141

  12.5.2 将本地计算机连接到HPC集群 147

  12.6 Dask JupyterLab扩展 148

  12.6.1 安装JupyterLab扩展 148

  12.6.2 启动集群 149

  12.6.3 用户界面 149

  12.6.4 观察进度 150

  12.7 了解Dask性能 150

  12.7.1 分布式计算中的指标 151

  12.7.2 Dask仪表板 151

  12.7.3 保存和共享Dask指标/性能日志 157

  12.7.4 高级诊断 159

  12.8 扩展和调试最佳实践 160

  12.8.1 手动扩展 160

  12.8.2 自适应/自动扩展 160

  12.8.3 保留和删除高计算成本的数据 160

  12.8.4 Dask Nanny 161

  12.8.5 worker内存管理 161

  12.8.6 集群规模调整 162

  12.8.7 重新审视分块 162

  12.8.8 避免重新分块 163

  12.9 作业调度 163

  12.10 部署监控 164

  12.11 小结 165

  附录A Dask用户的关键系统概念 167

  A.1 测试 167

  A.1.1 手动测试 167

  A.1.2 单元测试 167

  A.1.3 集成测试 168

  A.1.4 测试驱动开发 168

  A.1.5 属性测试 168

  A.1.6 使用Notebook 168

  A.1.7 在Notebook之外进行测试 169

  A.1.8 在Notebook中测试:内联断言 169

  A.2 数据和输出验证 169

  A.3 点对点分布与中心化分布 170

  A.4 并行方法 170

  A.4.1 任务并行 171

  A.4.2 数据并行 171

  A.4.3 打乱和宽窄转换 171

  A.4.4 局限性 171

  A.4.5 负载均衡 171

  A.5 网络容错和CAP定理 172

  A.6 递归 172

  A.7 版本控制和分支:代码和数据 173

  A.8 隔离 174

  A.9 机器容错 174

  A.10 可扩展性(向上和向下) 175

  A.11 缓存、内存、磁盘和网络 176

  A.12 哈希 176

  A.13 数据局部性 176

  A.14 正好一次与至少一次 177

  A.15 小结 177

  附录B 可扩展的DataFrame 179

  B.1 工具 179

  B.1.1 仅适用于一台机器 180

  B.1.2 分布式计算 181

  B.2 小结 184

  附录C 调试Dask 185

  C.1 使用调试器 185

  C.2 使用Dask的一般调试技巧 185

  C.3 原生错误 186

  C.4 关于官方建议处理坏记录的一些说明 187

  C.5 Dask诊断 187

  C.6 小结 188

  附录D 使用Streamz和Dask进行流式处理 189

  D.1 Dask上的Streamz入门 190

  D.2 流数据源和接收器 190

  D.3 字数统计 191

  D.4 Dask流式处理的GPU管道 192

  D.5 限制、挑战和解决方法 193

  D.6 小结 193

  


相关产品推荐

服务参数

- 本商品享受上述商家服务 - 关闭

商品参数

×