快速上手Scala:Spark大數據分析入門( 簡體 字) | |
作者:杜金源,張真亦 | 類別:1. -> 程式設計 -> Scala |
出版社:電子工業出版社 | 3dWoo書號: 54841 詢問書籍請說出此書號! 有庫存 NT售價: 540 元 |
出版日:6/1/2021 | |
頁數:244 | |
光碟數:0 | |
站長推薦: | |
印刷:黑白印刷 | 語系: ( 簡體 字 ) |
ISBN:9787121413858 | 加入購物車 │加到我的最愛 (請先登入會員) |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社) | |
第一章 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 本書是一本為Scala和Spark初學者準備的入門書籍,很適合準備踏入大數據開發領域的新手和其他對此感興趣的讀者閱讀。本書在內容上遵循從宏觀到微觀、由淺入深遞進式的講解方式,涵蓋了Spark入門開發所需的Scala基礎知識。具體來說,本書按照如下順序進行介紹。 首先,前三章從宏觀上介紹了Scala語言,包括初識Scala、安裝Scala及使用Scala Shell工具。 其次,第四章到第十二章是本書的重點,詳細介紹了與Spark開發密切相關的Scala語法,包括變量、數據類型、條件語句、代碼塊、函數、集合、循環、類和包,以及與異常處理相關的內容,每一章都對某個語法點進行深入探索。第十三章介紹了如何把寫好的Scala代碼進行編譯和打包。 最后,第十四章介紹了Spark的入門實踐,將前面章節所學到的Scala知識運用到Spark開發中。 此外,本書提供了豐富生動的代碼示例和章末練習,如果讀者能夠加以實踐并思考,一定會收獲頗豐!
首先,祝賀你決定閱讀這本書!
要知道,你的這個決定將具有重大的意義,你將從這本書中獲取你所希望學習的知識。在引言部分,我們將講述學習這項技能的背景與期望,以便你擁有最佳的學習路徑。 從本書的標題和描述中可以看出,這本書是關于Scala的。學習Scala的基礎知識,因為Scala是目前最熱門、最受歡迎的編程語言之一。隨著Apache Spark和Kafka等大數據平臺的崛起,人們對Scala的學習需求也進一步飆升。因此,如果肯付出時間,那么學習Scala的決定肯定是意義斐然的。另外,本書的標題還非常清晰地表明了本書的適用范圍:用于大數據分析的Scala編程。 Scala是一門通用語言,可以用于許多場景,如大數據開發、Web應用程序開發和數值計算等。本書的重點在于大數據開發,話雖如此,但本書并沒有詳細講解大數據開發的相關知識,而是簡要講解了Scala語言的一些概念。這些概念與大數據開發息息相關。 現在你可能會問,學習這些重要嗎?為什么要學習這本書呢?讓我簡要地介紹一下自己以回答你的這些疑問吧!我從事大數據和機器學習工作多年,我可以很自豪地說,我是一個自學成才的工程師或者說是數據科學家。我自學了大數據領域中用到的技術、框架、文獻和工具等。所以我能與那些在這個領域剛起步的人有強烈的共鳴,并且理解他們可能會面臨的挑戰,因為我的職業生涯中也遇到過類似的挑戰。大數據和機器學習(或一般的數據科學)是內容繁雜的領域,一個人很容易因為需要學習的東西太多而被搞得不知所措。特別是在大數據開發方向,我見過一些沒有計算機背景的人,或者即使有,他們也會遇到一個關鍵的瓶頸:他們并不擅長使用大數據領域的標準語言。Hadoop相關的大數據技術主要是用Java開發的。而許多最近被廣泛使用的大數據技術,如Apache Spark和Kafka,則是用Scala開發的。 具體來說,Apache Spark是目前使用最廣泛的大數據處理框架之一,可以應用于很多場景中(這將在后續章節中詳細闡述),是用Scala開發的。如果想在項目中使用Spark,那么應該學習Scala。這就是學習時面臨挑戰的地方!大數據工程師需要在學習Scala技能方面付出更多努力,這是使用Spark的先決條件。但是,他們讀的書太多,書的內容太過詳細,而且對Scala的介紹也過于深入。通常,這些書中的很多內容對于剛開始學習開發Spark并不是重要的。正是出于這個原因,作為領先的Hadoop商業供應商之一,Cloudera為所有想學習并參加Spark和Hadoop開發認證計劃的人提供了“剛好夠用的Scala”培訓。如果你有能力參加他們價格昂貴的培訓,那當然再好不過。或者,如果你想從一個自學的大數據工程師那里學習足夠多的Scala知識,而且他目前還在這個行業工作,并一直在使用Scala語言進行大數據及通用應用程序的開發,那正是本書所能提供的幫助。可以通過我在本書中分享的知識和經驗,以一種專注而務實的方式熟練地使用Scala。如果你問我的話,我認為沒有什么能比這個更有價值。 說到這里,讓我快速地總結出這本書中的一些獨到之處。這本書涵蓋了剛開始進行Spark開發的相關Scala概念。即使是這些概念也有其自身的深度,我將在本書中介紹這些概念所需的學習深度,以及大量需要動手實踐的例子。此外,我將重點介紹那些還需要自己學習的東西。你可能會發現本書這種風格不同于那些涵蓋所有Scala內容的書籍,因為一旦開始介紹這些概念的細節,這本書就將偏離它的重點—幫助你快速掌握Scala,以便你能夠集中更多的精力學習Spark。 所以你會發現我建議你重點研究某些特定的主題和概念。我是從參加許多知名公司的培訓活動中獲得的這種靈感,如Cloudera和微軟,他們會拋出一個問題,并希望你自己解決這個問題,而不是依賴于講師的指導。事實證明,這些培訓方案是非常有效的。同樣,在這本書中,如果你遵循我強調的要點進行學習,它將是很有價值的,因為它將拓寬你的知識面,并提升你的技能水平。但如果你不這樣做,你仍然可以從本書中學到很多,關鍵在于你想投入多少學習成本。因此,話不多說,讓我們開始學習Scala吧!你會發現我的教學風格是有趣且吸引人的,因為我是以一種獨特的方式進行教學的。這就是為什么我現在是德勤的數據科學培訓師的原因。我在大學論壇、全球峰會和學術會議上都發表過演講,并且有成千上萬的學生都注冊了我的Udemy課程。 現在,就讓我們開始學習吧! |