快速上手 Scala:Spark 大數據分析入門 Scala Programming for Big Data Analytics: Get Started with Big Data Analytics Using Apache Spark

杜金源,張真亦

買這商品的人也買了...

商品描述

本書是一本為Scala和Spark初學者準備的入門書籍,很適合準備踏入大數據開發領域的新手和其他對此感興趣的讀者閱讀。本書在內容上遵循從宏觀到微觀、由淺入深遞進式的講解方式,涵蓋了Spark入門開發所需的Scala基礎知識。具體來說,本書按照如下順序進行介紹。 首先,前三章從宏觀上介紹了Scala語言,包括初識Scala、安裝Scala及使用Scala Shell工具。 其次,第四章到第十二章是本書的重點,詳細介紹了與Spark開發密切相關的Scala語法,包括變量、數據類型、條件語句、代碼塊、函數、集合、循環、類和包,以及與異常處理相關的內容,每一章都對某個語法點進行深入探索。第十三章介紹瞭如何把寫好的Scala代碼進行編譯和打包。 最後,第十四章介紹了Spark的入門實踐,將前面章節所學到的Scala知識運用到Spark開發中。 此外,本書提供了豐富生動的代碼示例和章末練習,如果讀者能夠加以實踐並思考,一定會收獲頗豐!

作者簡介

目前在澳大利亞德勤工作,專攻大數據和機器學習方向。
他在端到端的生命週期方案及在雲環境(Azure、AWS和GCP)中設計、開發和部署生產級大數據分析解決方案架構方面擁有豐富經驗,這些環境支持廣泛的業務案例(包括數據湖、可伸縮預測和圖形分析、流處理)等。
他的經驗延伸到大數據分析的DevOps、平台治理和管理方面。


杜金源,北航碩士,曾在樂視、美團擔任資深大數據開發工程師,在大數據離線數據倉庫、實時計算、分佈式系統和數據平台工具鏈方面有多年開發經驗。
目前在阿里巴巴擔任技術專家,從事個性化推薦算法和大數據領域的研發。
《Openshift助力DevOps:雲部署更簡單》。

目錄大綱

第一章Scala語言
初識Scala / 002
為什麼要學習Scala / 003
Scala和Java / 003
Scala和Java的關係/ 003
與Java庫進行交互/ 004
Scala和Java的代碼量/ 004
Scala:一種靜態類型語言/ 006
Apache Spark與Scala / 006
Scala的性能/ 009
學習Apache Spark / 009

第二章安裝Scala
在系統中檢查Scala安裝狀態/ 011
檢查Java Development Kit(JDK)
安裝狀態/ 012
安裝Oracle JDK / 013
在Windows上安裝Scala / 014
驗證Scala安裝狀態/ 016
在Linux中安裝Scala / 016

第三章使用Scala Shell
從Scala Shell中獲得幫助/ 021
Scala REPL的hello world / 022
一步步理解Scala REPL中的hello world / 022
使用Scala REPL的數據類型的
高級特性/ 024
Scala REPL中的粘貼模式/ 026
Scala REPL中檢索歷史記錄/ 027
Scala REPL的自動補全特性/ 028
從Scala REPL退出/ 031

第四章變量
從Scala中的變量開始/ 033
Scala變量的不可變性/ 034
定義可變和不可變的Scala變量/ 035
Scala中強調不可變性的原因/ 036
可變性和類型安全的注意事項/ 037
為變量指定類型與類型推斷/ 038
Scala標識符規則和命名規範/ 039

第五章數據類型
Scala的類型層次結構/ 041
Boolean類型/ 044
String類型/ 045
多行字符串/ 047
字符串操作/ 047
Scala中的特殊類型/ 054
Unit類型/ 054
Any類型/ 056
Scala中的類型轉換/ 057

第六章條件語句
布爾表達式/ 061
在Scala中使用條件語句/ 062
逐步理解條件語句/ 062
嵌套的If/Else語句/ 064
If/Else作為三元運算符/ 066
模式匹配/ 067

第七章代碼塊
Scala中的代碼塊/ 070
使用代碼塊的注意事項/ 072
代碼塊和If/Else語句/ 072

第八章函數
為什麼要使用函數/ 076
理解函數/ 077
Scala中的函數/ 078
函數調用/ 079
有關函數定義的說明/ 080
多個參數的函數/ 081
位置參數/ 082
函數中參數的默認值/ 083
無參函數/ 084
單行函數/ 085
在函數中使用return語句/ 085
將函數作為參數傳遞/ 085
匿名函數/ 088

第九章集合
現實中的集合示例/ 091
理解列表/ 093
索引列表元素/ 095
在列表中能存儲什麼/ 096
被廣泛使用的列表操作/ 097
創建集合/ 106
理解Map集合/ 107
索引一個Map集合/ 109
Map中key的唯一性/ 110
創建Map集合的其他方式/ 111
操作Map / 111
用函數風格迭代Map / 112
理解元組/ 113
索引元組/ 114
遍曆元組/ 115
創建元組的另一種方法/ 116
理解可變集合/ 116
與可變集合有關的注意事項/ 118
可變的Map / 119
使用嵌套的集合/ 120

第十章循環
Scala中循環的類型/ 123
for循環/ 124
while循環/ 125
比較for循環和while循環/ 127
中斷循環/ 128

第十一章類和包
Scala中的類和對象/ 131
創建Scala的類和對象/ 132
多屬性值和注意事項/ 135
對類屬性使用val關鍵字/ 135
對類屬性使用var關鍵字/ 136
對類屬性既不使用val也不使用var
關鍵字/ 136
單例對象/ 137
Case類/ 139
Case類實踐/ 140
類中的相等性檢查/ 141
同時使用Case類和集合/ 143
類和包/ 144
避免命名空間衝突/ 144
引入包/ 145
第十二章異常處理
Scala異常處理的基礎/ 149
類型推斷的含義和異常處理/ 157
使用Try、Catch和Finally / 159

第十三章編譯和打包
Scala開發生命週期/ 162
Scala開發生命週期實踐/ 163
Scala編譯構建工具(SBT) / 164
在Windows上使用SBT / 165
在SBT上構建.sbt / 166
使用SBT管理依賴/ 170
使用SBT創建可執行的Scala應用程序/ 174
對可執行的Scala應用程序使用
Scala應用特性/ 176
Scala應用程序的Maven文件夾結構/ 176
在Scala應用程序中創建多個類並使用它們/ 178
編譯Scala應用程序/ 180
以JARS的形式打包Scala應用程序/ 181
轉換到IDE / 182
安裝IntelliJ IDEA / 182
IntelliJ IDEA插件安裝/ 184
IntelliJ IDEA導入項目/ 184

第十四章你好,Apache Spark
回顧Spark / 191
分佈式計算引擎/ 191
Spark與Hadoop / 192
Spark與YARN / 192
Spark進程/ 193
Spark的抽象/ 193
Spark的惰操作模式/ 194
使用Scala開發Spark / 195
在Databricks中配置Spark環境/ 195
用Scala開發Apache Spark / 198
將RDD轉換為Dataframe / 202
加載數據到Databricks中/ 203
將RDD轉換為Dataframe / 205
使用SBT創建Spark應用/ 209
在IntelliJ IDEA中創建一個新的項目/ 209
為Uber JARs管理SBT插件/ 210在SBT中管理Apache Spark依賴/ 211
Spark應用程序代碼/ 212

結論及展望/ 219