TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
Spark大數據編程實用教程(簡體書)
滿額折

Spark大數據編程實用教程(簡體書)

人民幣定價:109 元
定  價:NT$ 654 元
優惠價:87569
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:17 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次

商品簡介

本書是一本講解Spark基礎應用及程序設計的實用教程,基於 Spark 2.3 版本,內容包括 Spark 與大資料、構建 Spark 運行環境、開發一個Spark 程式、深入理解 Spark 程式碼、RDD 程序設計、Spark SQL 結構化資料處理、Spark Streaming、Structured Streaming、SparkR和GraphX。本書總結了Spark 學習的關鍵點;提出了 Spark 快速學習路線圖;提供配套的 Spark前置課程學習資源連結,包括虛擬機器、Linux 和 Shell 免費高清視頻、《零基礎快速入門Scala》免費電子書等,幫助零基礎讀者迅速夯實Spark基礎。
本書配以大量的示例、原始程式碼和注釋,可以幫助讀者快速、全面而又深入地掌握Spark程序設計技能。
本書既可作為高等院校大資料、雲計算和人工智能相關專業的教材,也可以作為Spark學習者和大資料研發人員的技術參考書。

作者簡介

文艾(艾叔)

系統分析師,原解放軍理工大學-奇虎360聯合實驗室技術負責人;具有多年大資料開發和運維經驗,帶領團隊完成了與華為、中興通訊和奇虎360等公司的多個大資料類項目;曾受邀為中興通訊和奇虎360等公司做技術培訓,其主講的Spark課程長期排名51CTO學院大資料類(Spark分類)年銷量前列;擅長説明初學者快速掌握Spark大資料程序設計技能,近年來指導零基礎本科生參加Spark類全國程序設計競賽,戰勝了多支985高校的研究生隊,獲得全國總決賽二等獎兩次和三等獎一次;指導本科生完成的雲計算和大資料類作品,參加科技創新競賽,共獲得全國特等獎一次,一等獎兩次;通過“艾叔程序設計”公眾號,以及在網易雲課堂上開設的一系列免費視頻課程,至今已説明8萬多名學習者入門程序設計,並獲得好評。

名人/編輯推薦

跟艾叔學習Spark,全面掌握Spark程序設計技能,快速成為合格的大資料工程師!

Spark程序設計全國總決賽等獎團隊實戰總結,提供Spark快速學習路線圖。
11個綜合實踐案例和110個餘個具體示例,透徹講解Spark程序設計方法。
免費提供高清學習視頻及電子書(涵蓋虛擬機器、Linux、Shell程序設計及Scala語言),一站式全方位夯實大資料開發基礎。

前 言
在大資料開發中,大資料處理是其中十分關鍵、必不可少的一環。Spark 是主流的通用大資料處理平臺,因此,要學習大資料開發,必然要學習 Spark。
近年來,作者在大資料教學上,尤其是在 Spark 技術的應用和推廣上進行了一系列有益的嘗試。
? 在全國較早地開設了雲計算及大資料相關課程。
? 在全國較早地對本科生開展了系統、深入的 Spark程序設計訓練。
? 主講的Spark實戰視頻課程在51CTO學院長期排名大資料(Spark分類)課程的年銷量第一。
? 作者指導 3 支 Spark 零基礎本科生團隊參加了 3 屆全國性Spark程序設計比賽(第二屆、第三屆和第四屆全國高校雲計算應用創新大賽技能賽),在同多支 985/211 高校的參賽隊角逐中,我們的本科生隊戰勝了多支研究生隊,共獲得全國總決賽二等獎兩次,三等獎一次。
? 此外,編者指導的雲計算和大資料作品,參加國家級科技創新競賽,共獲得全國特等獎一次,一等獎兩次。
在此期間,編者接觸並培養了大量的零基礎 Spark 學習者,總結出 Spark 初學者的四個共性問題。
? 內容繁雜,理不清頭緒:Spark 的學習內容太多,哪些是必須學的?先學哪個?後學哪個?漫無目的地學,只會導致事倍功半。
? 基礎不夠:Spark 開發需要大量的前置知識,例如虛擬機器、Linux 命令、網絡基礎、分散式系統基礎和程序設計語言等,很多都是理論和實踐結合在一起的,有一個問題搞不定,就會卡住進行不下去。
? Scala難以學習:Scala 語法晦澀難懂,讀 Spark 的 Scala API,明明很簡單的函數,卻看起來像天書。
? 無法動手:看了大量的Spark程序設計書籍,明白了 Spark 的技術原理,但是無法將自己的想法實現成Spark程式,更不用說利用Spark特性進行優化了。
為此,編者編寫了這本《Spark 大資料程序設計實用教程》,力圖能夠幫助 Spark 初學者快速掌握Spark程序設計技能,少走彎路,具體做法如下。
? 針對第一個問題,本書總結 Spark 學習的痛點,構建了 Spark 快速學習路線圖,為讀者提供一條清晰明確的學習路徑;結合編者自身的開發經驗,按照 20/80 原則,精選Spark學習中的重難點,幫助讀者快速、深入地掌握Spark。
? 針對第二個問題,本書提供了一站式 Spark 前置課程資源,包括虛擬機器、Linux 和Shell 程序設計等免費高清視頻,這些視頻在“網易雲課堂”上學習人數多,好評度高。每門課大概 10 個小視頻,短小精悍,每個視頻時長 15min 以內,即使零基礎也可快速入門。
? 針對第三個問題,本書採用 Scala 作為Spark應用的開發語言,每個 API 和關鍵示例代碼都有詳細講解,幫助讀者在實戰中快速掌握 Scala;同時,本書還提供配套編寫的《零基礎快速入門 Scala》免費電子書,精選 Scala 知識點,幫助讀者在短時間內快速入門Scala。
? 針對第四個問題,本書提供了非常多的 Spark 示例,它們來源於編者團隊 5 年 Spark項目開發、3 年 Spark 全國程序設計大賽的實踐經驗。每個示例都有說明,關鍵代碼有解釋,還有測試資料和運行方法,非常適合自學。可以幫助讀者迅速上手,全面、深入地掌握Spark程序設計技能,快速積累Spark開發經驗。
本書共10章,分別是Spark與大資料、構建 Spark 運行環境、開發第一個Spark程式、深入理解Spark 程式碼、RDD 程序設計、Spark SQL 結構化資料處理、Spark Streaming、Structured Streaming、Spark R和GraphX。
在章節分工上,艾叔負責整個大綱的擬定,以及第 1、2、3、4、5、6、7、8 章的編寫;艾叔、汪忠洋共同完成第9、10章的編寫。
本書既可作為高等院校大資料、雲計算和人工智能相關專業的教材,也可以作為Spark學習者和大資料研發人員的技術參考書。
感謝機械工業出版社的胡毓堅總編、和慶娣編輯、王斌編輯的大力支持。正是由於他們專業、熱情和不辭辛苦的付出,才成就了本書,在此表示衷心的感謝!
感謝我的妻子,她營造了一個很好環境,讓我能夠安心寫書,此書能夠順利出版,與她的包容和支持是密不可分的;感謝我的女兒,雖然她不懂書的內容,卻總能給我以最溫暖的鼓勵;感謝我的父母,他們默默的支持是我前行的動力!
感謝一直以來,關心幫助我成長的家人、老師、領導、同學和朋友們!
謹以此書獻給我曾學習、工作和生活多年的母校,雖然現已離開,但仍將銘記校訓繼續前行!
由於時間緊、任務急,書中難免有疏漏之處,如果閱讀過程中有任何疑問,可通過作者郵箱,或作者微信及公眾號:艾叔程序設計聯繫我們。

編 者
2020.01

目次

目 錄
前言

第1章 Spark與大資料1
1.1 大資料開發基礎1
1.1.1 什麼是大資料1
1.1.2 大資料開發的通用步驟2
1.1.3 大資料開發技術4
1.2 初識Spark10
1.2.1 Spark是什麼10
1.2.2 Spark的技術特點11
1.3 Spark技術棧12
1.4 Spark重要組件13
1.4.1 Spark Core13
1.4.2 Spark SQL14
1.4.3 GraphX15
1.4.4 流資料處理16
1.4.5 SparkR17
1.4.6 MLlib/ML18
1.4.7 Spark交互工具18
1.5 Spark和Scala19
1.5.1 Scala語言簡介19
1.5.2 為什麼用Scala開發Spark框架20
1.5.3 為什麼用Scala開發Spark程式20
1.5.4 Scala開發Spark程式所涉及的
技術20
1.5.5 Scala語言基礎21
1.6 如何快速掌握Spark21
1.6.1 Spark學習的痛點21
1.6.2 Spark快速學習路線圖22
1.6.3 Spark學習中的關鍵點23
1.6.4 利用本書相關資源高效學習Spark23
1.6.5 本書所使用的軟件和版本25
1.7 練習25
第2章 構建Spark運行環境26
2.1 Spark程式運行時架構26
2.2 構建Spark大資料運行環境28
2.2.1 構建HDFS28
2.2.2 構建Yarn30
2.2.3 構建Spark集群31
2.3 運行Spark程式(Local方式)31
2.4 運行Spark程式(分散式方式)32
2.4.1 Spark on Yarn32
2.4.2 Spark on Standalone36
2.5 Spark程式在spark-shell上運行41
2.6 使用Web UI監控Spark程式
運行43
2.7 擴展集群節點48
2.8 練習49
第3章 開發一個Spark程式51
3.1 在命令列模式下開發Spark程式51
3.1.1 構建Scala程式編譯環境51
3.1.2 使用Vim編寫Spark程式53
3.1.3 使用命令編譯、打包Spark程式54
3.1.4 運行Spark程式56
3.1.5 使用java命令運行Spark程式57
3.1.6 Spark程式編譯、運行、部署的
關鍵點58
3.2 使用IDEA開發Spark程式58
3.2.1 IDEA安裝和基本使用59
3.2.2 使用IDEA編輯Spark代碼60
3.2.3 IDEA編譯、打包62
3.2.4 IDEA遠端提交Spark程式63
3.3 練習64
第4章 深入理解Spark程式碼66
4.1 Spark程式碼結構66
4.2 Spark程式碼的核心概念68
4.2.1 RDD68
4.2.2 Application68
4.2.3 Job69
4.2.4 DAG70
4.2.5 Stage72
4.2.6 Task76
4.2.7 Application、Job、Stage和Task的
並行細微性和並行條件77
4.3 Spark程式碼執行過程77
4.4 練習85
第5章 RDD程序設計86
5.1 RDD核心概念86
5.1.1 Transformation的基本概念87
5.1.2 Action的基本概念88
5.1.3 Partition的基本概念88
5.2 創建RDD89
5.2.1 使用parallelize/makeRDD
創建RDD89
5.2.2 使用textFile創建RDD91
5.2.3 其他RDD創建操作92
5.3 RDD Partition93
5.3.1 Partition的基本操作94
5.3.2 Partition的分區過程96
5.3.3 Partition和Task98
5.3.4 計算Partition的個數100
5.3.5 Partition的綜合應用103
5.4 Transformation操作107
5.4.1 map操作107
5.4.2 flatMap操作111
5.4.3 mapPartitions操作113
5.4.4 join操作115
5.4.5 union操作120
5.4.6 intersection操作121
5.4.7 groupBy操作123
5.4.8 groupByKey操作124
5.4.9 reduceByKey操作125
5.4.10 aggregateByKey操作127
5.4.11 cogroup操作129
5.5 Action操作130
5.5.1 collect操作130
5.5.2 reduce操作130
5.5.3 fold操作131
5.5.4 aggregate操作133
5.5.5 foreachPartition操作134
5.5.6 saveAsTextFile操作135
5.5.7 saveAsObjectFile操作135
5.6 RDD的cache/persist和
checkpoint操作136
5.6.1 cache/persist和checkpoint概述136
5.6.2 cache/persist使用注意事項137
5.6.3 cache/persist操作138
5.6.4 checkpoint操作139
5.7 練習140
第6章 Spark SQL結構化資料處理142
6.1 Spark SQL的核心概念142
6.1.1 結構化資料和非結構化資料142
6.1.2 DataFrame143
6.1.3 Dataset144
6.1.4 Persistent Table和Data
Warehouse145
6.1.5 SQL146
6.1.6 SparkSession147
6.2 Spark SQL資料處理概述147
6.2.1 Spark SQL資料處理環境147
6.2.2 Spark SQL處理結構化資料149
6.2.3 Spark SQL處理不同資料來源的
資料150
6.3 構建Spark SQL運行環境150
6.3.1 Spark SQL運行環境概述150
6.3.2 構建最簡的Spark SQL運行環境151
6.3.3 構建相容Hive的Spark SQL運行
環境153
6.4 DataFrame/Dataset快速上手157
6.4.1 DataFrame/Dataset使用概述157
6.4.2 在spark-shell中使用DataFrame/
Dataset157
6.4.3 在代碼中使用DataFrame/Dataset161
6.4.4 DataFrame/Dataset使用上的區別163
6.4.5 DataFrame行解析方法164
6.4.6 DataFrame和Dataset轉換164
6.5 DataFrame/Dataset與資料來源的
轉換165
6.5.1 DataFrame/Dataset與資料來源的轉換
關係和方法概述165
6.5.2 DataFrame/Dataset與Seq的轉換167
6.5.3 DataFrame/Dataset與RDD的
轉換169
6.5.4 DataFrame/Dataset檔與Sequence
檔的轉換170
6.5.5 DataFrame/Dataset與CSV檔的
轉換170
6.5.6 DataFrame/Dataset與JSON檔的

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 569
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區