據估計,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文件,其中包含本書中使用的截圖和彩圖,可以幫助讀者更好地了解輸出的變化。