●第一部分數據科學並行計算基礎
第1章並行計算基礎知識
1.1什麼是並行計算
1.2並行計算的起源
1.2.1為什麼要進行並行計算
1.2.2如何解決大規模數據對計算能力的需求問題
1.3有關並行計算的基本概念
1.3.1並發計算、分布式計算的概念
1.3.2核、集群、中央處理器的概念
1.3.3集群計算、對等計算、網格計算、雲計算和普適計算的概念
1.3.4並行計算中的常用術語
1.4並行計算的性能評價方法
1.5並行計算的數據分解方法及計算模型
1.5.1分解問題為獨立塊
1.5.2並行計算模型
習題
第2章大數據基礎知識
2.1大數據簡介
2.1.1什麼是大數據
2.1.2大數據的3個V
2.1.3大數據相關概念和術語
2.1.4大數據處理繫統
2.1.5Spark框架的特性
2.1.6Spark生態
2.1.7Spark部署方式
2.2Hadoop和Spark基礎知識
2.2.1什麼是Hadoop
2.2.2Spark產生的背景
2.2.3Spark的優點
2.2.4Spark的三大概念
2.2.5為什麼要選擇Spark
2.3在阿裡雲服務器安裝和配置Hadoop和Spark
2.3.1Hadoop的安裝和配置
2.3.2Spark的安裝和配置
2.4Linux基礎知識
2.4.1LinuxShell介紹
2.4.2Linux常用目錄介紹
2.4.3Linux常用命令
2.4.4vim基本操作
習題
第二部分R語言並行計算
第3章R語言並行計算核心方法
3.1並行計算的R包
3.2parallel包並行計算
3.2.1parallel包的基礎知識
3.2.2parallel包的核心功能
3.2.3初始化節點
3.2.4數據分塊
3.3foreach包和future包並行計算
3.3.1foreach包
3.3.2foreach包和parallel包的後端
3.3.3future包和future.apply包
3.3.4調度和負載平衡
3.4隨機數和結果可重復性
3.4.1結果是可重復的嗎
3.4.2並行計算中的RNG
3.4.3foreach包和future.apply包中的結果可重復性
3.4.4小結
習題
第4章使用R中的sparklyr包操作
4.1sparklyr基礎知識
4.1.1什麼是sparklyr
4.1.2sparklyr的安裝與工作流程
4.2Spark中的數據
4.2.1向Spark傳輸數據
4.2.2tibble與DataFrame
4.2.3展示Spark中的數據集
4.2.4compute()與collect()
4.3sparklyr的dplyr接口
4.3.1dplyr接口簡介
4.3.2選擇目標列
4.3.3篩選行
4.3.4對行排序
4.3.5轉換或添加列
4.3.6計算彙總函數
4.3.7其他常用功能
4.4sparklyr的特征轉換接口
4.4.1dplyr接口的局限
4.4.2MLib接口
4.4.3SparkDataFrame接口
4.5案例:使用MLib接口進行機器學習
4.5.1MLib中的機器學習函數
4.5.2機器學習案例
習題
第5章R中的可擴展數據處理
5.1R中的可擴展數據處理簡介
5.1.1什麼是可伸縮的數據處理
5.1.2使用bigmemory項目處理“核外”對像
5.1.3big.matrix的復制
5.2使用大內存處理和分析數據
5.2.1bigmemory軟件包套件
5.2.2拆分、計算和合並
5.2.3使用Tidyverse可視化結果
5.2.4bigmemory的局限性
5.3使用iotools處理大型文件
5.3.1數據的分塊處理
5.3.2初識iotools:導入數據
5.3.3chunk.apply的巧妙運用
5.4案例:抵押貸款數據的基礎分析
5.4.1不同人種的抵押貸款的數量
5.4.2數據缺失與其他變量的關繫
5.4.3不同人種貸款數量的變化趨勢
5.4.4鄉村與城鎮的貸款變化趨勢
5.4.5收入與聯邦擔保貸款
5.4.6小結
習題
第三部分Python語言並行計算
第6章使用Python進行Dask並行編程
6.1Dask基礎知識
6.1.1Dask簡介
6.1.2Dask的主要優點
6.1.3安裝Dask
6.2Dask對不同數據結構的操作
6.2.1Dask對Array的操作
6.2.2Dask對DataFrame的操作
6.2.3Dask對Bag的操作
6.3在大數據集上訓練
6.3.1安裝Python包
6.3.2導入包
6.3.3創建隨機數據集
6.3.4生成數據集
6.3.5K-means計算
6.3.6使用Dask可視化示例
6.4並行及分布式機器學習
6.4.1生成隨機數據
6.4.2支持向量機
6.5分布式部署示例
6.5.1Dask分布式簡介
6.5.2啟動主節點
6.5.3啟動工作節點
6.5.4運行Dask分布式示例
習題
第7章PySpark基礎操作
7.1PySpark簡介
7.1.1PySpark相關概念
7.1.2PySpark初步操作
7.1.3Python中的匿名函數
7.2PySparkRDD相關編程
7.2.1什麼是RDD
7.2.2創建RDD的方法
7.2.3RDD的轉換操作
7.2.4RDD的執行操作
7.2.5創建RDD對的方法
7.2.6RDD對的執行操作
7.3PySpark的DataFrame
7.3.1PySpark數據流簡介
7.3.2SparkSession――DataFrameAPI的入口點
7.3.3在PySpark中創建數據流
7.3.4DataFrame的轉換操作
7.3.5DataFrame的執行操作
7.3.6有條件的DataFrame轉換操作
7.3.7在DataFrame中實現用戶自定義函數
7.3.8與ArrayType列進行交互
7.4提升DataFrame操作的性能
7.4.1提高數據導入的性能
7.4.2集群尺寸建議
7.4.3查看Spark執行計劃
7.4.4shuffling
7.5在PySpark中使用SQL查詢
7.5.1DataFrameAPIvs.SQL查詢
7.5.2執行SQL語句
7.5.3DataFrame連接操作
7.6案例:房屋售價探索性分析
7.6.1讀入並檢查數據
7.6.2房屋售價的描述統計量
7.6.3使用可視化方式查看數據
習題
第8章PySpark特征工程
8.1數據科學思維簡介
8.2數據清洗
8.2.1什麼是數據清洗
8.2.2使用Spark進行數據清洗的優勢
8.2.3使用SparkSchema驗證數據集
8.2.4使用數據管道進行轉換操作
8.2.5驗證數據的質量
8.2.6使用數據框進行分析
8.3單特征預處理
8.3.1數據標準化
8.3.2缺失值處理
8.3.3提取日期特征
8.3.4二值化和桶化
8.3.5OneHot編碼
8.4多特征預處理
8.4.1特征生成
8.4.2特征提取
8.4.3文本數據特征提取
8.5案例:航班數據預處理
8.5.1讀取數據
8.5.2刪除飛機編號字段
8.5.3刪除delay字段的缺失值
8.5.4創建衍生字段
8.5.5將輸入字段合並為一個向量
8.5.6對航空公司字段進行OneHot編碼
習題
第9章PySpark機器學習
9.1機器學習與Spark
9.2使用SparkML中的分類模型
9.2.1數據集劃分
9.2.2決策樹
9.2.3邏輯回歸
9.2.4分類模型評價
9.2.5使用集成模型進行分類
9.3使用SparkML中的回歸模型
9.3.1線性回歸模型
9.3.2隨機森林回歸
9.3.3回歸模型評價
9.3.4通過離散化改進模型性能
9.3.5使用正則化方法防止過擬合
9.4使用SparkMLlib進行機器學習
9.4.1PySparkMLlib概述
9.4.2協同過濾
9.4.3分類
9.4.4聚類
9.5模型選擇
9.5.1管道
9.5.2交叉驗證
9.5.3網格尋優
習題
本書通俗地講解數據科學與並行計算的基本概念、方法和原理,繫統地介紹基於典型大數據場景的並行計算解決思路,同時涵蓋常用的數據並行計算工具的操作實踐,使讀者知其然更知其所以然。
本書的特色在於:注重對大數據科學方法核心應用的講解,突出以並行計算思維解決大數據場景問題的案例教學。基於典型大數據場景案例數據集,循序漸進地引導讀者利用Parallel、Sparklyr、Dask和PySpark等主流並行計算工具實現數據的清洗、轉換、描述和建模分析。幫助讀者繫統全面地構建數據科學的基本知識體繫,領會數據並行計算方法的精髓,掌握不同編程語言和並行計算工具針對不同規模數據集的優缺點,能夠利用並行計算工具解決實際的數據分析問題。