大規(guī)模數(shù)據(jù)分析和建模:基于Spark與R
定 價:89 元
叢書名:O'Reilly精品圖書系列
- 作者:[美] 哈維爾·盧拉辛(Javier Luraschi),凱文·郭(Kevin,Kuo 著,魏博譯 譯
- 出版時間:2020/7/1
- ISBN:9787111661016
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP274
- 頁碼:260
- 紙張:膠版紙
- 版次:1
- 開本:16開
這本書的目的是幫助所有人通過R使用Apache Spark。第1章~第5章,簡單地介紹了如何大規(guī)模執(zhí)行數(shù)據(jù)科學(xué)和機器學(xué)習(xí)項目。第6~9章介紹了使用Spark進行集群計算中令人激動的基本概念。第10章~第13章涵蓋一些高級主題,包括分布式R、Streaming和社區(qū)貢獻等。
如果你和大多數(shù)R語言用戶一樣,那你肯定喜歡統(tǒng)計學(xué),也能夠深入理解統(tǒng)計學(xué)。但是隨著組織內(nèi)部不斷收集大量數(shù)據(jù),添加Apache Spark這類工具就變得理所當然。在本書中,數(shù)據(jù)科學(xué)家和使用大規(guī)模數(shù)據(jù)應(yīng)用的專業(yè)人員會學(xué)到如何使用Spark和R解決大數(shù)據(jù)和大計算問題。
作者會展示如何將Spark和R結(jié)合起來進行大數(shù)據(jù)分析。本書涵蓋相關(guān)的數(shù)據(jù)科學(xué)話題、聚類計算,以及高級用戶會感興趣的問題。
·在Apache Spark環(huán)境下,使用R來分析、探索、轉(zhuǎn)換、可視化數(shù)據(jù)。
·構(gòu)建統(tǒng)計模型來提取信息并預(yù)測輸出,自動化生產(chǎn)級的工作流程。
·使用分布式計算技術(shù)在多臺機器上進行分析和建模。
·輕松使用Spark處理多個數(shù)據(jù)源和格式的大規(guī)模數(shù)據(jù)。
·學(xué)習(xí)其他用于大規(guī)模圖處理、地理空間分析和基因組學(xué)分析的建?蚣堋
·深入高級話題,包括定制轉(zhuǎn)換、實時數(shù)據(jù)處理和創(chuàng)建定制化Spark擴展。
在信息呈指數(shù)級增長的世界中,Apache Spark等先進工具為我們解決今天面臨的許多相關(guān)問題提供了支持。從在基于數(shù)據(jù)驅(qū)動的決策中尋找改進方法的公司,到解決醫(yī)療、金融、教育和能源問題的研究機構(gòu),Spark比以往任何時候都能更快、更可靠地分析更多信息。
人們編寫了各種各樣的書籍來學(xué)習(xí)Apache Spark。例如,Spark: The Definitive Guide是一本綜合性的書籍,Learning Spark是一本介紹性的書籍,旨在幫助用戶熟悉和運行Spark(兩者都由O'Reilly出版)。然而,撰寫本書時,既沒有使用R語言學(xué)習(xí)Apache Spark的書籍,也沒有專門為R用戶或潛在的R用戶設(shè)計的書籍。
有一些在線資源介紹了用R語言學(xué)習(xí)Apache Spark。最著名的是sparkrstudiocom網(wǎng)站和sparkapacheorg網(wǎng)站上的Spark文檔。這兩個網(wǎng)站都是很好的在線資源,但是,上面的內(nèi)容并不適合初學(xué)者。它們都假設(shè)讀者對Apache Spark、R和集群計算有一定的了解。
這本書的目的是幫助所有人通過R使用Apache Spark。另外,由于R編程語言的目的是簡化數(shù)據(jù)分析,我們相信這本書也可以為學(xué)習(xí)用Spark解決數(shù)據(jù)分析問題提供一條快捷途徑。第1章提供了一個概述,幫助快速理解這些概念,并介紹了在計算機上處理這些問題所需的工具。然后,我們會快速進入相關(guān)的數(shù)據(jù)科學(xué)主題、集群計算和高級主題,即使是最有經(jīng)驗的用戶也會對這部分內(nèi)容感興趣。
因此,本書旨在成為一個對廣大用戶有用的資源,從渴望學(xué)習(xí)Apache Spark的初學(xué)者,到希望理解為什么和如何通過R使用Apache Spark的有經(jīng)驗的讀者,都可以從書中獲益。
本書的結(jié)構(gòu)如下:
介紹
12Apache SparkRSparkR
分析
在第3章中,你將學(xué)習(xí)如何使用R在Apache Spark中分析、探索、轉(zhuǎn)換和可視化數(shù)據(jù)。
建模
45
規(guī)模化
69Apache Spark
擴展
10
高級技術(shù)
1113R
15SparkSpark
69SparkSparkSpark67
1013Spark
代碼生成的表格的格式如下:
# A tibble: 3 x 2
numbers text
1 1 one
2 2 two
3 3 three
第一行描述表的維度(行數(shù)和列數(shù)),第二行是列名,第三行是列類型。我們在本書中使用的tibble包還提供了各種細微的視覺改進。
大多數(shù)繪圖都使用ggplot2包和附錄中提供的自定義主題進行渲染。但是,由于本書不關(guān)注數(shù)據(jù)可視化,因此我們只提供基本的繪圖代碼,其可能與實際中應(yīng)用的格式不匹配。如果你有興趣學(xué)習(xí)R中更多關(guān)于可視化的知識,可以考慮專門的書籍,比如R Graphics Cookbook('Reilly出版社)。
致謝
感謝那些允許通過R使用Spark程序包的作者:Javier Luraschi、Kevin Kuo、Kevin Ushey和JJ Allaire(sparklyr);Romain fran鏾is和Hadley Wickham(dbplyr);Hadley Wickham和Edgar Ruiz(dpblyr);Kirill Mülller(DBI);以及Apache Spark項目本身的作者及其最初作者Matei Zaharia。
感謝為豐富Spark和R生態(tài)系統(tǒng)而發(fā)布擴展程序包的作者:Akhil Nair(crassy);Harry Zhu(geospark);Kevin Kuo(graphframes、mleap、sparktf和sparkxgb);Jakub Hava、Navdeep Gill、Erin LeDell和Michal Malohlava(rsparkling);Jan Wijffels(sparksas7bdat);Aki Ariga(sparkavro);Martin Studer(sparkbq);Matt Pollock(sparklyrnested);Nathan Eastwood(sparkts);Samuel Macêdo(variantspark)。
感謝我們出色的編輯Melissa Potter為我們提供指導(dǎo)、鼓勵和無數(shù)小時的詳細反饋,這些努力使這本書成為我們的著作中最好的一本。
感謝Bradley Boehmke、Bryan Adams、Bryan Jonas、Dusty Turner和Hossein Falaki,感謝你們的技術(shù)評論、付出的時間和坦率的反饋,并與我們分享專業(yè)知識。多虧了你們,許多讀者才會有更愉快的閱讀體驗。
感謝RStudio、JJ Allaire和Tareef Kawaf對這項工作的支持,感謝R社區(qū)的持續(xù)支持和鼓勵。
Max Kuhn,感謝你對第4章的寶貴反饋。在他的允許下,我們采用了他的精彩著作Feature Engineering and Selection: A Practical Approach for Predictive Models(CRC出版社)中的例子。
我們也感謝所有間接參與但沒有在這里明確列出的人們。我們真正站在了巨人的肩膀上。
這本書在R語言中用Yihui Xie的bookdown、JJ Allaire和Yihui Xie的rmarkdown、Yihui Xie的knitr寫成;用Hadley Wickham和Winston Chang的ggplot2完成可視化;用Daniel Kallin和Javier Luraschi的nomnoml繪制圖表;用John MacFarlane的pandoc進行文檔轉(zhuǎn)換。
本書約定
本書使用下列排版風(fēng)格:
斜體(Italic)
表示新的術(shù)語、URL、電子郵箱地址、文件名和文件擴展名。
等寬字體(Constant width)
表示程序清單以及段落中引用的程序元素,如變量或函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關(guān)鍵字。
等寬粗體(Constant width bold)
表示應(yīng)由用戶輸入的命令或其他文本。
等寬斜體(Constant width italic)
表示應(yīng)該被用戶提供的,或由上下文確定的值替換的文本。
用來表示注意事項或者建議。
用來表示一般的注釋。
示例代碼
可以從https://githubcom/r-spark/the-r-in-spark下載補充材料(示例代碼、練習(xí)等)。
這里的代碼是為了幫助你更好地理解本書的內(nèi)容。通常,可以在程序或文檔中使用本書中的代碼,而不需要聯(lián)系O扲eilly獲得許可,除非需要大段地復(fù)制代碼。例如,使用本書中所提供的幾個代碼片段來編寫一個程序不需要得到我們的許可,但銷售或發(fā)布O扲eilly的配套CD-ROM則需要O'Reilly出版社的許可。引用本書的示例代碼來回答一個問題也不需要許可,將本書中的示例代碼的很大一部分放到自己的產(chǎn)品文檔中則需要獲得許可。
非常歡迎讀者使用本書中的代碼,希望(但不強制)你注明出處。注明出處的形式包含標題、作者、出版社和ISBN,例如:
Mastering Spark with R,作者為Javier Luraschi、Kevin Kuo和Edgar Ruiz,由O扲eilly出版,書號為978-1-492-04637-0
如果讀者覺得對示例代碼的使用超出了上面所給出的許可范圍,歡迎通過permission@oreillycom聯(lián)系我們。
O'Reilly在線學(xué)習(xí)平臺(O'Reilly Online Learning)
近40年來,O'Reilly Media致力于提供技術(shù)和商業(yè)培訓(xùn)、知識和卓越見解,來幫助眾多公司取得成功。
我們擁有獨一無二的專家和革新者組成的龐大網(wǎng)絡(luò),他們通過圖書、文章、會議和我們的在線學(xué)習(xí)平臺分享他們的知識和經(jīng)驗。O'Reilly的在線學(xué)習(xí)平臺允許你按需訪問現(xiàn)場培訓(xùn)課程、深入的學(xué)習(xí)路徑、交互式編程環(huán)境,以及O扲eilly和200多家其他出版商提供的大量文本和視頻資源。有關(guān)的更多信息,請訪問http://oreillycom。
如何聯(lián)系我們
對于本書,如果有任何意見或疑問,請按照以下地址聯(lián)系本書出版商。
美國:
O'Reilly Media,Inc
1005 Gravenstein Highway North
Sebastopol,CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術(shù)咨詢(北京)有限公司
要詢問技術(shù)問題或?qū)Ρ緯岢鼋ㄗh,請發(fā)送電子郵件至bookquestions@oreillycom。
本書配套網(wǎng)站https://oreilly/SparkwithR上列出了勘誤表、示例以及其他信息。
關(guān)于書籍、課程、會議和新聞的更多信息,請訪問我們的網(wǎng)站http://wwworeillycom。
我們在Facebook上的地址:http://facebookcom/oreilly
我們在Twitter上的地址:http://twittercom/oreillymedia
我們在YouTube上的地址:http://wwwyoutubecom/oreillymedia
Javier Luraschi是大規(guī)模數(shù)據(jù)科學(xué)諸多庫的發(fā)明者,包括sparklyr、r2d3、pins和cloudml。
Kevin Kuo構(gòu)建了機器學(xué)習(xí)庫,并領(lǐng)導(dǎo)了Kasa AI的開放保險研究。
Edgar Ruiz構(gòu)建了企業(yè)級的數(shù)據(jù)解決方案工具,包括dbplot、tidypredict和modeldb。
序言1
前言3
第1章 引言9
11 概述10
12 Hadoop10
13 Spark12
14 R16
15 sparklyr19
16 小結(jié)20
第2章 開始21
21 概述21
22 預(yù)備操作22
221 安裝sparklyr23
222 安裝Spark23
23 連接24
24 使用Spark25
241 網(wǎng)絡(luò)接口25
242 分析28
243 建模28
244 數(shù)據(jù)30
245 擴展30
246 分布式R31
247 流式數(shù)據(jù)31
248 日志32
25 斷開連接33
26 使用RStudio33
27 資源35
28 小結(jié)36
第3章 分析37
31 概述37
32 數(shù)據(jù)導(dǎo)入40
33 數(shù)據(jù)整理41
331 內(nèi)置函數(shù)42
332 相關(guān)性43
34 可視化45
341 使用ggplot246
342 使用dbplot47
35 建模49
36 溝通51
37 小結(jié)54
第4章 建模56
41 概述56
42 探索性數(shù)據(jù)分析58
43 特征工程65
44 監(jiān)督式學(xué)習(xí)68
441 廣義線性回歸72
442 其他模型73
45 非監(jiān)督式學(xué)習(xí)73
451 數(shù)據(jù)準備74
452 主題建模75
46 小結(jié)77
第5章 管道操作78
51 概述78
52 創(chuàng)建工作80
53 用例81
54 操作模式83
55 交互性84
56 部署86
561 批打分87
562 實時打分88
57 小結(jié)90
第6章 集群92
61 概述92
62 本地化94
621 管理器94
622 發(fā)行版98
63 云端100
631 亞馬遜101
632 Databricks102
633 谷歌103
634 IBM105
635 微軟106
636 Qubole107
64 Kubernetes107
65 工具108
651 RStudio108
652 Jupyter109
653 Livy110
66 小結(jié)111
第7章 連接112
71 概述112
711 邊緣節(jié)點114
712 Spark主目錄114
72 本地模式115
73 單機模式116
74 YARN116
741 YARN客戶端117
742 YARN集群117
75 Livy118
76 Mesos120
77 Kubernetes121
78 云模式121
79 批量模式122
710 工具123
711 多次連接123
712 故障排除124
7121 記錄日志124
7122 Spark Submit124
7123 Windows126
713 小結(jié)126
第8章 數(shù)據(jù)127
81 概述127
82 讀取數(shù)據(jù)129
821 路徑129
822 模式130
823 內(nèi)存131
824 列132
83 寫入數(shù)據(jù)133
84 復(fù)制數(shù)據(jù)134
85 文件格式135
851 CSV136
852 JSON137
853 Parquet138
854 其他139
86 文件系統(tǒng)140
87 存儲系統(tǒng)140
871 Hive141
872 Cassandra142
873 JDBC142
88 小結(jié)143
第9章 調(diào)試144
91 概述144
911 計算圖146
912 時間線148
92 配置148
921 連接設(shè)置150
922 提交設(shè)置151
923 運行時設(shè)置152
924 sparklyr設(shè)置153
93 分區(qū)156
931 隱式分區(qū)156
932 顯式分區(qū)157
94 緩存158
941 檢查點159
942 內(nèi)存159
95 重洗160
96 序列化161
97 配置文件161
98 小結(jié)162
第10章 擴展163
101 概述163
102 H2O165
103 圖模型169
104 XGBoost173
105 深度學(xué)習(xí)176
106 基因組學(xué)179
107 空間數(shù)據(jù)181
108 故障排除183
109 小結(jié)183
第11章 分布式R185
111 概述185
112 用例187
1121 定制解析器188
1122 分區(qū)建模189
1123 網(wǎng)格搜索191
1124 Web API192
1125 模擬193
113 分區(qū)194
114 分組195
115 列196
116 context參數(shù)197
117 函數(shù)198
118 程序包199
119 集群需求200
1191 安裝R200
1192 Apache Arrow201
1110 故障排除203
11101 工作節(jié)點日志204
11102 解決超時205
11103 檢查分區(qū)206
11104 調(diào)試工作節(jié)點206
1111 小結(jié)207
第12章 數(shù)據(jù)流208
121 概述208
122 轉(zhuǎn)換211
1221 分析212
1222 建模213
1223 管道214
1224 分布式R215
123 Kafka216
124 Shiny218
125 小結(jié)220
第13章 社區(qū)貢獻221
131 概述221
132 Spark API223
133 Spark擴展224
134 使用Scala代碼226
135 小結(jié)228
附錄A 補充參考代碼229