主要內(nèi)容
● 處理大型的結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)集
● 使用Seaborn和Datashader實現(xiàn)可視化
● 實現(xiàn)自己的算法
● 構(gòu)建分布式應用
● 打包和部署Dask應用
第Ⅰ部分 可擴展計算的基礎
第1章 可擴展計算的重要性 3
1.1 Dask的優(yōu)勢 4
1.2 有向無環(huán)圖 9
1.3 橫向擴展、并發(fā)和恢復 13
1.3.1 縱向擴展和橫向擴展 14
1.3.2 并發(fā)和資源管理 16
1.3.3 從失敗中恢復 17
1.4 本書使用的數(shù)據(jù)集 18
1.5 本章小結(jié) 19
第2章 Dask入門 21
2.1 DataFrame API初探 22
2.1.1 Dask對象的元數(shù)據(jù) 22
2.1.2 使用compute方法運行計算任務 25
2.1.3 使用persist簡化復雜計算 27
2.2 DAG的可視化 28
2.2.1 使用Dask對象查看DAG 28
2.2.2 帶有循環(huán)和集合的復雜DAG的可視化 29
2.2.3 使用persist簡化DAG 32
2.3 任務調(diào)度 35
2.3.1 計算 35
2.3.2 數(shù)據(jù)本地化 36
2.4 本章小結(jié) 38
第II部分 使用Dask DataFrame處理結(jié)構(gòu)化數(shù)據(jù)
第3章 介紹Dask DataFrame 41
3.1 為什么使用DataFrame 42
3.2 Dask和Pandas 43
3.2.1 管理DataFrame分區(qū) 45
3.2.2 “混洗”介紹 48
3.3 Dask DataFrame的局限性 49
3.4 本章小結(jié) 50
第4章 將數(shù)據(jù)讀入DataFrame 53
4.1 從文本文件讀取數(shù)據(jù) 54
4.1.1 Dask數(shù)據(jù)類型 59
4.1.2 為Dask DataFrame創(chuàng)建數(shù)據(jù)模式 61
4.2 從關系數(shù)據(jù)庫中讀取數(shù)據(jù) 65
4.3 從HDFS和S3中讀取數(shù)據(jù) 68
4.4 讀取Parquet格式的數(shù)據(jù) 72
4.5 本章小結(jié) 74
第5章 DataFrame的清理和轉(zhuǎn)換 75
5.1 使用索引和軸 77
5.1.1 從DataFrame中選擇列 77
5.1.2 從DataFrame中刪除列 79
5.1.3 DataFrame中列的重命名 81
5.1.4 從DataFrame中選擇行 81
5.2 處理缺失值 83
5.2.1 對DataFrame中的缺失值計數(shù) 83
5.2.2 刪除含有缺失值
的列 85
5.2.3 填充缺失值 85
5.2.4 刪除缺少數(shù)據(jù)的行 86
5.2.5 使用缺失值輸入多個列 87
5.3 數(shù)據(jù)重編碼 89
5.4 元素運算 93
5.5 過濾和重新索引DataFrame 95
5.6 DataFrame的連接 97
5.6.1 連接兩個DataFrame 98
5.6.2 合并兩個DataFrame 101
5.7 將數(shù)據(jù)寫入文本文件和Parquet文件 103
5.7.1 寫入含分隔符的文本文件 103
5.7.2 寫入Parquet 文件 104
5.8 本章小結(jié) 105
第6章 聚合和分析DataFrame 107
6.1 描述性統(tǒng)計信息 108
6.1.1 什么是描述性統(tǒng)計信息 108
6.1.2 使用Dask計算描述性統(tǒng)計信息 110
6.1.3 使用describe方法進行描述性統(tǒng)計 114
6.2 內(nèi)置的聚合函數(shù) 115
6.2.1 什么是相關性 115
6.2.2 計算Dask DataFrame的相關性 117
6.3 自定義聚合函數(shù) 121
6.3.1 使用t檢驗測試分類變量 121
6.3.2 使用自定義聚合函數(shù)來實現(xiàn)Brown-Forsythe檢驗 123
6.4 滾動(窗口)功能 134
6.4.1 為滾動函數(shù)準備數(shù)據(jù) 135
6.4.2 將rolling方法應用到一個窗口函數(shù) 136
6.5 本章小結(jié) 137
第7章 使用Seaborn對DataFrame進行可視化 139
7.1 prepare-reduce-collect-plot模式 141
7.2 可視化散點圖與規(guī)則圖的延伸關系 143
7.2.1 使用Dask和Seaborn創(chuàng)建散點圖 143
7.2.2 在散點圖中添加線性回歸線 146
7.2.3 在散點圖中添加非線性回歸線 147
7.3 使用小提琴圖可視化分類關系 149
7.3.1 使用Dask和Seaborn創(chuàng)建小提琴圖 150
7.3.2 從Dask DataFrame隨機采樣數(shù)據(jù) 152
7.4 使用熱圖可視化兩個分類關系 154
7.5 本章小結(jié) 157
第8章 用Datashader對位置數(shù)據(jù)可視化 159
8.1 什么是Datashader?它是如何工作的? 160
8.1.1 Datashader渲染流程的五個階段 161
8.1.2 使用Datashader進行可視化 165
8.2 將位置數(shù)據(jù)繪制為交互式熱圖 166
8.2.1 準備用于地圖平鋪的地理數(shù)據(jù) 166
8.2.2 創(chuàng)建交互式熱圖 167
8.3 本章小結(jié) 169
第III部分 擴展和部署Dask
第9章 使用Bag和Arrays 173
9.1 使用Bag讀取和解析非結(jié)構(gòu)化數(shù)據(jù) 175
9.1.1 從Bag中選擇和查看數(shù)據(jù) 176
9.1.2 常見的解析和解決辦法 176
9.1.3 使用分隔符 177
9.2 轉(zhuǎn)換、過濾和合并元素 184
9.2.1 使用map函數(shù)轉(zhuǎn)換元素 184
9.2.2 使用filter函數(shù)過濾Bag 186
9.2.3 計算Bag的描述統(tǒng)計量 189
9.2.4 使用foldby方法創(chuàng)建聚合函數(shù) 190
9.3 從Bag中創(chuàng)建Arrays和DataFrame 192
9.4 使用Bag和NLTK進行并行文本分析 193
9.4.1 二元分析的基礎 194
9.4.2 提取token和過濾停頓詞 194
9.4.3 分析二元組 198
9.5 本章小結(jié) 200
第10章 使用Dask-ML進行機器學習 201
10.1 使用Dask-ML建立線性模型 202
10.1.1 準備二進制向量化數(shù)據(jù) 204
10.1.2 使用Dask-ML建立Logistic回歸模型 210
10.2 評估和調(diào)整Dask-ML模型 211
10.2.1 用計分法評估Dask-ML模型 211
10.2.2 使用Dask-ML構(gòu)建樸貝葉斯分類器 212
10.2.3 自動調(diào)整超參數(shù) 213
10.3 持續(xù)的Dask-ML模型 215
10.4 本章小結(jié) 217
第11章 擴展和部署Dask 219
11.1 使用Docker在Amazon AWS上創(chuàng)建Dask集群 220
11.1.1 入門 221
11.1.2 生成安全密鑰 222
11.1.3 創(chuàng)建ECS集群 224
11.1.4 配置集群的網(wǎng)絡 227
11.1.5 在Elastic文件中創(chuàng)建共享數(shù)據(jù)驅(qū)動 231
11.1.6 在Elastic ContainerRepository中為Docker鏡像分配空間 236
11.1.7 為調(diào)度器、工作節(jié)點和Notebook創(chuàng)建和部署鏡像 237
11.1.8 連接到集群 244
11.2 在集群上運行和監(jiān)視Dask作業(yè) 246
11.3 在AWS上清理Dask集群 250
11.4 本章小結(jié) 252
附錄A 軟件的安裝 253