Python 大數據處理庫 PySpark 實戰
內容描述
我國提出新基建概念,要加快大數據中心、人工智能等新型基礎設施的建設進度,這無疑需要更多的大數據人才。PySpark可以對大數據進行分佈式處理,降低大數據學習門檻,本書正是一本PySpark入門教材,適合有一定Python基礎的讀者學習使用。 本書分為7章,第1章介紹大數據的基本概念、常用的大數據分析工具;第2章介紹Spark作為大數據處理的特點和算法;第3章介紹Spark實戰環境的搭建,涉及Windows和Linux操作系統;第4章介紹如何靈活應用PySpark對數據進行操作;第5章介紹PySpark ETL處理,涉及PySpark讀取數據、對數據進行統計分析等數據處理相關內容;第6章介紹PySpark如何利用MLlib庫進行分佈式機器學習(Titanic幸存者預測);第7章介紹一個PySpark和Kafka結合的實時項目。 本書內容全面、示例豐富,可作為廣大PySpark入門讀者必備的參考書,同時能作為大中專院校師生的教學參考書,也可作為高等院校電腦及相關專業的大數據技術教材使用。
目錄大綱
章大數據時代1
1.1什麼是大數據1
1.1.1大數據的特點2
1.1.2大數據的發展趨勢3
1.2大數據下的分析工具4
1.2.1 Hadoop 5
1.2.2 Hive 6
1.2.3 HBase 6
1.2.4 Apache Phoenix 7
1.2.5 Apache Drill 7
1.2.6 Apache Hudi 7
1.2.7 Apache Kylin 8
1.2.8 Apache Presto 8
1.2.9 ClickHouse 8
1.2.10 Apache Spark 9
1.2.11 Apache Flink 10
1.2 .12 Apache Storm 10
1.2.13 Apache Druid 10
1.2.14 Apache Kafka 11
1.2.15 TensorFlow 11
1.2.16 PyTorch 12
1.2.17 Apache Superset 12
1.2.18 Elasticsearch 12
1.2.19 Jupyter Notebook 13
1.2.20 Apache Zeppelin 13
1.3小結14
第2章大數據的瑞士軍刀——Spark 15
2.1 Hadoop與生態系統15
2.1.1 Hadoop概述15
2.1.2 HDFS體系結構19
2.1.3 Hadoop生態系統20
2.2 Spark與Hadoop 23
2.2.1 Apache Spark概述23
2.2.2 Spark和Hadoop比較24
2.3 Spark核心概念25
2.3.1 Spark軟件棧25
2.3.2 Spark運行架構26
2.3.3 Spark部署模式27
2.4 Spark基本操作29
2.5 SQL in Spark 33
2.6 Spark與機器學習33
2.6.1決策樹算法35
2.6.2貝葉斯算法36
2.6.3支持向量機算法36
2.隨機森林算法37
2.6.5人工神經網絡算法38
2.6.6關聯規則算法39
2.6.7線性回歸算法40
2.6.8 KNN算法40
2.6.9 K-Means算法41
2.7小結42
第3章Spark實戰環境設定43
3.1建立Spark環境前提43
3.1.1 CentOS 7安裝45
3.1.2 FinalShell安裝55
3.1.3 PuTTY安裝58
3.1.4 JDK安裝60
3.1.5 Python安裝63
3.1.6 Visual Studio Code安裝
3.1.7 PyCharm安裝65
3.2一分鍾建立Spark環境66
3.2.1 Linux搭建Spark環境66
3.2.2 Windows搭建Spark環境69
3.3建立Hadoop集群79
3.3.1 CentOS配置79
3.3.2 Hadoop偽分佈模式安裝81
3.3.3 Hadoop完全分佈模式安裝87
3.4安裝與配置Spark集群93
3.5安裝與配置Hive 99
3.5.1 Hive安裝99
3.5.2 Hive與Spark集成108
3.6打造交互式Spark環境110
3.6.1 Spark Shell 111
3.6.2 PySpark 112
3.6.3 Jupyter Notebook安裝112
3.7小結118
第4章活用PySpark 119
4.1 Python語法複習119
4.1.1 Python基礎語法120
4.1.2 Python變量類型124
4.1.3 Python運算符135
4.1.4 Python控制語句139
4.1.5 Python函數143
4.1.6 Python模塊和包149
4.1.7 Python面向對象154
4.1 .8 Python異常處理157
4.1.9 Python JSON處理159
4.1.10 Python日期處理160
4.2用PySpark建立個Spark RDD 161
4.2.1 PySpark Shell建立RDD 163
4.2.2 VSCode編程建立RDD 165
4.2.3 Jupyter編程建立RDD 167
4.3 RDD的操作與觀察168
4.3.1 first操作169
4.3.2 max操作169
4.3.3 sum操作170
4.3.4 take操作171
4.3.5 top操作172
4.3.6 count操作172
4.3.7 collect操作173
4.3.8 collectAsMap操作174
4.3.9 countByKey操作175
4.3.10 countByValue操作175
4.3.11 glom操作176
4.3.12 coalesce操作177
4.3.13 combineByKey操作178
4.3.14 distinct操作179
4.3.15 filter操作180
4.3.16 flatMap操作181
4.3.17 flatMapValues操作181
4.3.18 fold操作182
4.3. 19 foldByKey操作183
4.3.20 foreach操作184
4.3.21 foreachPartition操作185
4.3.22 map操作186
4.3.23 mapPartitions操作187
4.3.24 mapPartitionsWithIndex操作187
4.3.25 mapValues操作188
4.3.26 groupBy操作189
4.3.27 groupByKey操作190
4.3.28 keyBy操作191
4.3.29 keys操作192
4.3.30 zip操作193
4.3.31 zipWithIndex操作194
4.3.32 values操作194
4.3.33 union操作195
4.3.34 takeOrdered操作196
4.3.35 takeSample操作197
4.3.36 subtract操作198
4.3.37 subtractByKey操作198
4.3.38 stats操作199
4.3.39 sortBy操作200
4.3.40 sortByKey操作201
4.3.41 sample操作202
4.3.42 repartition操作203
4.3. 43 reduce操作204
4.3.44 reduceByKey操作205
4.3.45 randomSplit操作206
4.3.46 lookup操作207
4.3.47 join操作208
4.3.48 intersection操作209
4.3.49 fullOuterJoin操作210
4.3.50 leftOuterJoin與rightOuterJoin操作211
4.3. 51 aggregate操作212
4.3.52 aggregateByKey操作215
4.3.53 cartesian操作217
4.3.54 cache操作218
4.3.55 saveAsTextFile操作218
4.4共享變數220
4.4.1廣播變量220
4.4.2累加器221
4.5 DataFrames與Spark SQL 223
4.5.1 DataFrame建立223
4.5.2 Spark SQL基本用法228
4.5.3 DataFrame基本操作231
4.6撰寫個Spark程序245
4.7提交你的Spark程序246
4.8小結248
第5章PySpark ETL實戰249
5.1認識資料單元格式249
5.2觀察資料255
5.3選擇、篩選與聚合267
5.4存儲數據269
5.5 Spark存儲數據到SQL Server 272
5.6小結275
第6章PySpark分佈式機器學習276
6.1認識數據格式277
6.2描述統計280
6.3資料清理與變形284
認識Pipeline 288
6.5邏輯回歸原理與應用290
6.5.1邏輯回歸基本原理290
6.5.2邏輯回歸應用示例:Titanic倖存者預測291
6.6決策樹原理與應用295
6.6.1決策樹基本原理295
6.6.2決策樹應用示例:Titanic倖存者預測296
6.7小結299
第7章實戰:PySpark Kafka實時項目301
7.1 Kafka和Flask環境搭建301
7.2代碼實現303
7.3小結310
作者介紹
汪明,碩士,畢業於中國礦業大學,徐州軟件協會副理事長,某創業公司合夥人。從事軟件行業十餘年,發表論文數十篇。著有圖書《TypeScript實戰》《Go並發編程實戰》。