大規(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ù)科學和機器學習項目。第6~9章介紹了使用Spark進行集群計算中令人激動的基本概念。第10章~第13章涵蓋一些高級主題,包括分布式R、Streaming和社區(qū)貢獻等。
如果你和大多數(shù)R語言用戶一樣,那你肯定喜歡統(tǒng)計學,也能夠深入理解統(tǒng)計學。但是隨著組織內部不斷收集大量數(shù)據(jù),添加Apache Spark這類工具就變得理所當然。在本書中,數(shù)據(jù)科學家和使用大規(guī)模數(shù)據(jù)應用的專業(yè)人員會學到如何使用Spark和R解決大數(shù)據(jù)和大計算問題。
作者會展示如何將Spark和R結合起來進行大數(shù)據(jù)分析。本書涵蓋相關的數(shù)據(jù)科學話題、聚類計算,以及高級用戶會感興趣的問題。
·在Apache Spark環(huán)境下,使用R來分析、探索、轉換、可視化數(shù)據(jù)。
·構建統(tǒng)計模型來提取信息并預測輸出,自動化生產級的工作流程。
·使用分布式計算技術在多臺機器上進行分析和建模。
·輕松使用Spark處理多個數(shù)據(jù)源和格式的大規(guī)模數(shù)據(jù)。
·學習其他用于大規(guī)模圖處理、地理空間分析和基因組學分析的建?蚣。
·深入高級話題,包括定制轉換、實時數(shù)據(jù)處理和創(chuàng)建定制化Spark擴展。
在信息呈指數(shù)級增長的世界中,Apache Spark等先進工具為我們解決今天面臨的許多相關問題提供了支持。從在基于數(shù)據(jù)驅動的決策中尋找改進方法的公司,到解決醫(yī)療、金融、教育和能源問題的研究機構,Spark比以往任何時候都能更快、更可靠地分析更多信息。
人們編寫了各種各樣的書籍來學習Apache Spark。例如,Spark: The Definitive Guide是一本綜合性的書籍,Learning Spark是一本介紹性的書籍,旨在幫助用戶熟悉和運行Spark(兩者都由O'Reilly出版)。然而,撰寫本書時,既沒有使用R語言學習Apache Spark的書籍,也沒有專門為R用戶或潛在的R用戶設計的書籍。
有一些在線資源介紹了用R語言學習Apache Spark。最著名的是sparkrstudiocom網站和sparkapacheorg網站上的Spark文檔。這兩個網站都是很好的在線資源,但是,上面的內容并不適合初學者。它們都假設讀者對Apache Spark、R和集群計算有一定的了解。
這本書的目的是幫助所有人通過R使用Apache Spark。另外,由于R編程語言的目的是簡化數(shù)據(jù)分析,我們相信這本書也可以為學習用Spark解決數(shù)據(jù)分析問題提供一條快捷途徑。第1章提供了一個概述,幫助快速理解這些概念,并介紹了在計算機上處理這些問題所需的工具。然后,我們會快速進入相關的數(shù)據(jù)科學主題、集群計算和高級主題,即使是最有經驗的用戶也會對這部分內容感興趣。
因此,本書旨在成為一個對廣大用戶有用的資源,從渴望學習Apache Spark的初學者,到希望理解為什么和如何通過R使用Apache Spark的有經驗的讀者,都可以從書中獲益。
本書的結構如下:
介紹
12Apache SparkRSparkR
分析
在第3章中,你將學習如何使用R在Apache Spark中分析、探索、轉換和可視化數(shù)據(jù)。
建模
45
規(guī);
69Apache Spark
擴展
10
高級技術
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包和附錄中提供的自定義主題進行渲染。但是,由于本書不關注數(shù)據(jù)可視化,因此我們只提供基本的繪圖代碼,其可能與實際中應用的格式不匹配。如果你有興趣學習R中更多關于可視化的知識,可以考慮專門的書籍,比如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為我們提供指導、鼓勵和無數(shù)小時的詳細反饋,這些努力使這本書成為我們的著作中最好的一本。
感謝Bradley Boehmke、Bryan Adams、Bryan Jonas、Dusty Turner和Hossein Falaki,感謝你們的技術評論、付出的時間和坦率的反饋,并與我們分享專業(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進行文檔轉換。
本書約定
本書使用下列排版風格:
斜體(Italic)
表示新的術語、URL、電子郵箱地址、文件名和文件擴展名。
等寬字體(Constant width)
表示程序清單以及段落中引用的程序元素,如變量或函數(shù)名、數(shù)據(jù)庫、數(shù)據(jù)類型、環(huán)境變量、語句和關鍵字。
等寬粗體(Constant width bold)
表示應由用戶輸入的命令或其他文本。
等寬斜體(Constant width italic)
表示應該被用戶提供的,或由上下文確定的值替換的文本。
用來表示注意事項或者建議。
用來表示一般的注釋。
示例代碼
可以從https://githubcom/r-spark/the-r-in-spark下載補充材料(示例代碼、練習等)。
這里的代碼是為了幫助你更好地理解本書的內容。通常,可以在程序或文檔中使用本書中的代碼,而不需要聯(lián)系O扲eilly獲得許可,除非需要大段地復制代碼。例如,使用本書中所提供的幾個代碼片段來編寫一個程序不需要得到我們的許可,但銷售或發(fā)布O扲eilly的配套CD-ROM則需要O'Reilly出版社的許可。引用本書的示例代碼來回答一個問題也不需要許可,將本書中的示例代碼的很大一部分放到自己的產品文檔中則需要獲得許可。
非常歡迎讀者使用本書中的代碼,希望(但不強制)你注明出處。注明出處的形式包含標題、作者、出版社和ISBN,例如:
Mastering Spark with R,作者為Javier Luraschi、Kevin Kuo和Edgar Ruiz,由O扲eilly出版,書號為978-1-492-04637-0
如果讀者覺得對示例代碼的使用超出了上面所給出的許可范圍,歡迎通過permission@oreillycom聯(lián)系我們。
O'Reilly在線學習平臺(O'Reilly Online Learning)
近40年來,O'Reilly Media致力于提供技術和商業(yè)培訓、知識和卓越見解,來幫助眾多公司取得成功。
我們擁有獨一無二的專家和革新者組成的龐大網絡,他們通過圖書、文章、會議和我們的在線學習平臺分享他們的知識和經驗。O'Reilly的在線學習平臺允許你按需訪問現(xiàn)場培訓課程、深入的學習路徑、交互式編程環(huán)境,以及O扲eilly和200多家其他出版商提供的大量文本和視頻資源。有關的更多信息,請訪問http://oreillycom。
如何聯(lián)系我們
對于本書,如果有任何意見或疑問,請按照以下地址聯(lián)系本書出版商。
美國:
O'Reilly Media,Inc
1005 Gravenstein Highway North
Sebastopol,CA 95472
中國:
北京市西城區(qū)西直門南大街2號成銘大廈C座807室(100035)
奧萊利技術咨詢(北京)有限公司
要詢問技術問題或對本書提出建議,請發(fā)送電子郵件至bookquestions@oreillycom。
本書配套網站https://oreilly/SparkwithR上列出了勘誤表、示例以及其他信息。
關于書籍、課程、會議和新聞的更多信息,請訪問我們的網站http://wwworeillycom。
我們在Facebook上的地址:http://facebookcom/oreilly
我們在Twitter上的地址:http://twittercom/oreillymedia
我們在YouTube上的地址:http://wwwyoutubecom/oreillymedia
Javier Luraschi是大規(guī)模數(shù)據(jù)科學諸多庫的發(fā)明者,包括sparklyr、r2d3、pins和cloudml。
Kevin Kuo構建了機器學習庫,并領導了Kasa AI的開放保險研究。
Edgar Ruiz構建了企業(yè)級的數(shù)據(jù)解決方案工具,包括dbplot、tidypredict和modeldb。
序言1
前言3
第1章 引言9
11 概述10
12 Hadoop10
13 Spark12
14 R16
15 sparklyr19
16 小結20
第2章 開始21
21 概述21
22 預備操作22
221 安裝sparklyr23
222 安裝Spark23
23 連接24
24 使用Spark25
241 網絡接口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 小結36
第3章 分析37
31 概述37
32 數(shù)據(jù)導入40
33 數(shù)據(jù)整理41
331 內置函數(shù)42
332 相關性43
34 可視化45
341 使用ggplot246
342 使用dbplot47
35 建模49
36 溝通51
37 小結54
第4章 建模56
41 概述56
42 探索性數(shù)據(jù)分析58
43 特征工程65
44 監(jiān)督式學習68
441 廣義線性回歸72
442 其他模型73
45 非監(jiān)督式學習73
451 數(shù)據(jù)準備74
452 主題建模75
46 小結77
第5章 管道操作78
51 概述78
52 創(chuàng)建工作80
53 用例81
54 操作模式83
55 交互性84
56 部署86
561 批打分87
562 實時打分88
57 小結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 小結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 小結126
第8章 數(shù)據(jù)127
81 概述127
82 讀取數(shù)據(jù)129
821 路徑129
822 模式130
823 內存131
824 列132
83 寫入數(shù)據(jù)133
84 復制數(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 小結143
第9章 調試144
91 概述144
911 計算圖146
912 時間線148
92 配置148
921 連接設置150
922 提交設置151
923 運行時設置152
924 sparklyr設置153
93 分區(qū)156
931 隱式分區(qū)156
932 顯式分區(qū)157
94 緩存158
941 檢查點159
942 內存159
95 重洗160
96 序列化161
97 配置文件161
98 小結162
第10章 擴展163
101 概述163
102 H2O165
103 圖模型169
104 XGBoost173
105 深度學習176
106 基因組學179
107 空間數(shù)據(jù)181
108 故障排除183
109 小結183
第11章 分布式R185
111 概述185
112 用例187
1121 定制解析器188
1122 分區(qū)建模189
1123 網格搜索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 調試工作節(jié)點206
1111 小結207
第12章 數(shù)據(jù)流208
121 概述208
122 轉換211
1221 分析212
1222 建模213
1223 管道214
1224 分布式R215
123 Kafka216
124 Shiny218
125 小結220
第13章 社區(qū)貢獻221
131 概述221
132 Spark API223
133 Spark擴展224
134 使用Scala代碼226
135 小結228
附錄A 補充參考代碼229