內容簡介
本文從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實戰指南:利用Python和Spark構建數據密集型應用並規模化部署 下載 mobi epub pdf txt 電子書