Contents目 錄
譯者序
序
前言
關于作者
第1章 了解Spark 1
1.1 什么是Apache Spark 1
1.2 Spark作業(yè)和API 2
1.2.1 執(zhí)行過程 2
1.2.2 彈性分布式數據集 3
1.2.3 DataFrame 4
1.2.4 Dataset 5
1.2.5 Catalyst優(yōu)化器 5
1.2.6 鎢絲計劃 5
1.3 Spark 2.0的架構 6
1.3.1 統(tǒng)一Dataset和DataFrame 7
1.3.2 SparkSession介紹 8
1.3.3 Tungsten Phase 2 8
1.3.4 結構化流 10
1.3.5 連續(xù)應用 10
1.4 小結 11
第2章 彈性分布式數據集 12
2.1 RDD的內部運行方式 12
2.2 創(chuàng)建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優(yōu)化器刷新 25
3.3 利用DataFrame加速PySpark 27
3.4 創(chuàng)建DataFrame 28
3.4.1 生成自己的JSON數據 29
3.4.2 創(chuàng)建一個DataFrame 29
3.4.3 創(chuàng)建一個臨時表 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 描述性統(tǒng)計 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 描述性統(tǒng)計 66
5.3.2 相關性 67
5.3.3 統(tǒng)計測試 69
5.4 創(chuàng)建最終數據集 70
5.4.1 創(chuàng)建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 創(chuàng)建轉換器 81
6.2.3 創(chuàng)建一個評估器 82
6.2.4 創(chuàng)建一個管道 82
6.2.5 擬合模型 83
6.2.6 評估模型的性能 84
6.2.7 保存模型 84
6.3 超參調優(yōu) 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 創(chuàng)建庫 103
7.3 準備你的航班數據集 105
7.4 構建圖形 107
7.5 執(zhí)行簡單查詢 108
7.5.1 確定機場和航班的數量 108
7.5.2 確定這個數據集中的最長延誤時間 108
7.5.3 確定延誤和準點/早到航班的數量對比 109
7.5.4 哪一班從西雅圖出發(fā)的航班最有可能出現(xiàn)重大延誤 109
7.5.5 西雅圖出發(fā)到哪個州的航班最有可能出現(xiàn)重大延誤 110
7.6 理解節(jié)點的度 110
7.7 確定最大的中轉機場 112
7.8 理解Motif 113
7.9 使用PageRank確定機場排名 114
7.10 確定最受歡迎的直飛航班 115
7.11 使用廣度優(yōu)先搜索 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實現(xiàn)混合持久化