- 看完了 更新時間:2021-12-06 11:52:01
- 封面簡介
- 作者簡介
- 12.5 小結
- 12.4.3 DataFrame與SQL的explain命令
- 12.4.2 DataFrame API和Dataset API的改動
- 12.4.1 支持的與不推薦使用的編程語言
- 12.4 有改動的功能
- 12.3.3 新的Pandas函數API
- 12.3.2 Pandas UDF中的迭代器支持
- 12.3.1 重新設計的帶有Python類型提示的Pandas UDF
- 12.3 PySpark、Pandas UDF和Pandas函數API
- 12.2 Structured Streaming
- 12.1.5 可感知加速器的調度器
- 12.1.4 Catalog插件API與DataSourceV2
- 12.1.3 SQL連接提示
- 12.1.2 自適應查詢執行
- 12.1.1 動態分區裁剪
- 12.1 Spark內核與Spark SQL
- 第 12 章 尾聲:Apache Spark 3.0
- 11.4 小結
- 11.3.2 將Spark用于分布式超參數調優
- 11.3.1 Pandas UDF
- 11.3 利用Spark使用非MLlib模型
- 11.2.3 導出模型用于實時預測的模式
- 11.2.2 流處理
- 11.2.1 批處理
- 11.2 用MLlib部署模型所用的選項
- MLflow
- 11.1 模型管理
- 第 11 章 用 Apache Spark 管理、部署與伸縮機器學習流水線
- 10.4 小結
- 10.3.3 優化流水線
- 10.3.2 k 折交叉驗證
- 10.3.1 基于樹的模型
- 10.3 超參數調優
- 10.2.8 保存和加載模型
- 10.2.7 評估模型
- 10.2.6 創建流水線
- 10.2.5 用預估器構建模型
- 10.2.4 理解線性回歸
- 10.2.3 為轉化器準備特征
- 10.2.2 創建訓練集與測試集
- 10.2.1 接入并探索數據
- 10.2 設計機器學習流水線
- 10.1.3 為什么將Spark用于機器學習
- 10.1.2 無監督學習
- 10.1.1 監督學習
- 10.1 什么是機器學習
- 第 10 章 用 MLlib 實現機器學習
- 9.6 小結
- 9.5.8 用時間旅行功能查詢表以前的快照數據
- 9.5.7 根據操作歷史審計數據變更
- 9.5.6 轉化已有數據
- 9.5.5 修改表結構以適應數據變化
- 9.5.4 寫數據時強化表結構約束以防止數據損壞
- 9.5.3 把數據流加載到Delta Lake表中
- 9.5.2 把數據加載到Delta Lake表中
- 9.5.1 為使用Delta Lake配置Spark
- 9.5 用Spark與Delta Lake構建湖倉一體的系統
- 9.4.3 Delta Lake
- 9.4.2 Apache Iceberg
- 9.4.1 Apache Hudi
- 9.4 湖倉一體:下一代存儲解決方案
- 9.3.3 數據湖的不足之處
- 9.3.2 用Spark讀寫數據湖
- 9.3.1 數據湖簡介
- 9.3 數據湖
- 9.2.3 數據庫的不足之處
- 9.2.2 用Spark讀寫數據庫
- 9.2.1 數據庫簡介
- 9.2 數據庫
- 9.1 最佳存儲解決方案的重要特點
- 第 9 章 用 Apache Spark 構建可靠的數據湖
- 8.10 小結
- 8.9 性能調優
- 8.8.3 用flatMapGroupsWithState()進行通用操作
- 8.8.2 用超時管理不活躍的分組
- 8.8.1 用mapGroupsWithState()為任意有狀態操作建模
- 8.8 任意的有狀態計算
- 8.7.2 流與流連接
- 8.7.1 流與靜態表連接
- 8.7 流式連接
- 8.6.2 使用事件時間窗口進行聚合
- 8.6.1 不根據時間維度進行聚合
- 8.6 有狀態的流式聚合
- 8.5.3 有狀態轉化操作
- 8.5.2 無狀態轉化操作
- 8.5.1 增量執行與流處理狀態
- 8.5 數據轉化
- 8.4.3 自定義流式數據源與數據池
- 8.4.2 Kafka
- 8.4.1 文件
- 8.4 流式數據源與數據池
- 8.3.4 監控活躍的查詢
- 8.3.3 失敗恢復與“精確一次”語義
- 8.3.2 探究活躍的流式查詢
- 8.3.1 五步定義流式查詢
- 8.3 Structured Streaming查詢
- 8.2 Structured Streaming的編程模型
- 8.1.3 Structured Streaming的設計哲學
- 8.1.2 從DStream獲取的經驗教訓
- 8.1.1 以微型批模擬的流處理
- 8.1 Spark流處理引擎的演進過程
- 第 8 章 結構化流處理
- 7.5 小結
- Spark UI的標簽頁
- 7.4 查看Spark UI
- 7.3.2 混洗排序合并連接
- 7.3.1 廣播哈希連接
- 7.3 Spark的各種連接算法
- 7.2.4 什么時候不應該緩存和持久化
- 7.2.3 什么時候應該緩存和持久化
- 7.2.2 DataFrame.persist()
- 7.2.1 DataFrame.cache()
- 7.2 數據的緩存與持久化
- 7.1.2 為大型作業擴展Spark
- 7.1.1 查看與設置Spark配置
- 7.1 為效率而優化與調優
- 第 7 章 Spark 應用的優化與調優
- 6.6 小結
- 減少開銷的策略
- 6.5 使用Dataset的開銷
- 6.4.2 序列化與反序列化
- 6.4.1 Spark內部格式與Java對象格式
- 6.4 Dataset編碼器
- 6.3 Dataset與DataFrame的內存管理
- 6.2.2 轉化示例數據
- 6.2.1 創建示例數據
- 6.2 操作Dataset
- 用于Dataset的Scala樣例類和JavaBean類
- 6.1 Java與Scala共用一套API
- 第 6 章 Spark SQL 與 Dataset
- 5.6 小結
- 5.5.4 修改
- 5.5.3 窗口
- 5.5.2 連接
- 5.5.1 聯合
- 5.5 常用的DataFrame操作和Spark SQL操作
- 5.4.4 高階函數
- 5.4.3 針對復雜數據類型的內建函數
- 5.4.2 方式2:用戶自定義函數
- 5.4.1 方式1:打散再重組
- 5.4 DataFrame和Spark SQL的高階函數
- 5.3.6 其他外部數據源
- 5.3.5 MS SQL Server
- 5.3.4 Azure Cosmos DB
- 5.3.3 MySQL
- 5.3.2 PostgreSQL
- 5.3.1 JDBC和SQL數據庫
- 5.3 外部數據源
- 5.2.3 使用Tableau
- 5.2.2 使用Beeline
- 5.2.1 使用Spark SQL shell
- 5.2 用Spark SQL shell、Beeline和Tableau查詢
- 用戶自定義函數
- 5.1 Spark SQL與Apache Hive
- 第 5 章 Spark SQL 與 DataFrame:讀寫外部數據源
- 4.4 小結
- 4.3.9 二進制文件
- 4.3.8 圖像
- 4.3.7 ORC
- 4.3.6 Avro
- 4.3.5 CSV
- 4.3.4 JSON
- 4.3.3 Parquet
- 4.3.2 DataFrameWriter
- 4.3.1 DataFrameReader
- 4.3 DataFrame和SQL表的數據源
- 4.2.6 將表讀取為DataFrame
- 4.2.5 緩存SQL表
- 4.2.4 查看元數據
- 4.2.3 創建視圖
- 4.2.2 創建SQL數據庫和SQL表
- 4.2.1 有管理表和無管理表
- 4.2 SQL表和視圖
- 基礎查詢示例
- 4.1 在Spark應用中使用Spark SQL
- 第 4 章 Spark SQL 與 DataFrame:內建數據源概覽
- 3.7 小結
- Catalyst優化器
- 3.6 Spark SQL及其底層引擎
- 何時選用RDD
- 3.5 對比DataFrame和Dataset
- 3.4.4 完整的Dataset示例
- 3.4.3 Dataset操作
- 3.4.2 創建Dataset
- 3.4.1 有類型對象、無類型對象,以及普通行
- 3.4 Dataset API
- 3.3.7 完整的DataFrame示例
- 3.3.6 常見的DataFrame操作
- 3.3.5 行
- 3.3.4 列與表達式
- 3.3.3 表結構與DataFrame
- 3.3.2 Spark中結構化的復雜數據類型
- 3.3.1 Spark的基本數據類型
- 3.3 DataFrame API
- 關鍵優點與好處
- 3.2 Spark支持結構化數據
- 3.1 RDD的背后是什么
- 第 3 章 Apache Spark 的結構化數據 API
- 2.7 小結
- 2.6.2 用Scala構建獨立應用
- 2.6.1 統計M&M巧克力豆
- 2.6 第一個獨立應用
- 2.5 Spark UI
- 窄轉化與寬轉化
- 2.4 轉化操作、行動操作以及惰性求值
- 2.3.4 Spark任務
- 2.3.3 Spark執行階段
- 2.3.2 Spark作業
- 2.3.1 Spark應用與SparkSession
- 2.3 第3步:理解Spark應用的相關概念
- 使用本地機器
- 2.2 第2步:使用Scala shell或PySpark shell
- Spark的目錄和文件
- 2.1 第1步:下載Spark
- 第 2 章 下載并開始使用 Apache Spark
- 1.4.2 社區接受度與社區發展
- 1.4.1 哪些人用Spark,用它做什么
- 1.4 開發者體驗
- 1.3.2 Spark的分布式執行
- 1.3.1 由Spark組件組成的一站式軟件棧
- 1.3 一站式數據分析
- 1.2.4 可擴展
- 1.2.3 模塊化
- 1.2.2 易用
- 1.2.1 快速
- 1.2 什么是Spark
- 1.1.3 Spark在AMPLab嶄露頭角
- 1.1.2 雅虎的Hadoop
- 1.1.1 谷歌的大數據和分布式計算
- 1.1 Spark的起源
- 第 1 章 Apache Spark 簡介:一站式分析引擎
- 前言
- 序
- 對本書的贊譽
- 譯者序
- O'Reilly Media Inc.介紹
- 版權聲明
- 版權信息
- 封面
- 封面
- 版權信息
- 版權聲明
- O'Reilly Media Inc.介紹
- 譯者序
- 對本書的贊譽
- 序
- 前言
- 第 1 章 Apache Spark 簡介:一站式分析引擎
- 1.1 Spark的起源
- 1.1.1 谷歌的大數據和分布式計算
- 1.1.2 雅虎的Hadoop
- 1.1.3 Spark在AMPLab嶄露頭角
- 1.2 什么是Spark
- 1.2.1 快速
- 1.2.2 易用
- 1.2.3 模塊化
- 1.2.4 可擴展
- 1.3 一站式數據分析
- 1.3.1 由Spark組件組成的一站式軟件棧
- 1.3.2 Spark的分布式執行
- 1.4 開發者體驗
- 1.4.1 哪些人用Spark,用它做什么
- 1.4.2 社區接受度與社區發展
- 第 2 章 下載并開始使用 Apache Spark
- 2.1 第1步:下載Spark
- Spark的目錄和文件
- 2.2 第2步:使用Scala shell或PySpark shell
- 使用本地機器
- 2.3 第3步:理解Spark應用的相關概念
- 2.3.1 Spark應用與SparkSession
- 2.3.2 Spark作業
- 2.3.3 Spark執行階段
- 2.3.4 Spark任務
- 2.4 轉化操作、行動操作以及惰性求值
- 窄轉化與寬轉化
- 2.5 Spark UI
- 2.6 第一個獨立應用
- 2.6.1 統計M&M巧克力豆
- 2.6.2 用Scala構建獨立應用
- 2.7 小結
- 第 3 章 Apache Spark 的結構化數據 API
- 3.1 RDD的背后是什么
- 3.2 Spark支持結構化數據
- 關鍵優點與好處
- 3.3 DataFrame API
- 3.3.1 Spark的基本數據類型
- 3.3.2 Spark中結構化的復雜數據類型
- 3.3.3 表結構與DataFrame
- 3.3.4 列與表達式
- 3.3.5 行
- 3.3.6 常見的DataFrame操作
- 3.3.7 完整的DataFrame示例
- 3.4 Dataset API
- 3.4.1 有類型對象、無類型對象,以及普通行
- 3.4.2 創建Dataset
- 3.4.3 Dataset操作
- 3.4.4 完整的Dataset示例
- 3.5 對比DataFrame和Dataset
- 何時選用RDD
- 3.6 Spark SQL及其底層引擎
- Catalyst優化器
- 3.7 小結
- 第 4 章 Spark SQL 與 DataFrame:內建數據源概覽
- 4.1 在Spark應用中使用Spark SQL
- 基礎查詢示例
- 4.2 SQL表和視圖
- 4.2.1 有管理表和無管理表
- 4.2.2 創建SQL數據庫和SQL表
- 4.2.3 創建視圖
- 4.2.4 查看元數據
- 4.2.5 緩存SQL表
- 4.2.6 將表讀取為DataFrame
- 4.3 DataFrame和SQL表的數據源
- 4.3.1 DataFrameReader
- 4.3.2 DataFrameWriter
- 4.3.3 Parquet
- 4.3.4 JSON
- 4.3.5 CSV
- 4.3.6 Avro
- 4.3.7 ORC
- 4.3.8 圖像
- 4.3.9 二進制文件
- 4.4 小結
- 第 5 章 Spark SQL 與 DataFrame:讀寫外部數據源
- 5.1 Spark SQL與Apache Hive
- 用戶自定義函數
- 5.2 用Spark SQL shell、Beeline和Tableau查詢
- 5.2.1 使用Spark SQL shell
- 5.2.2 使用Beeline
- 5.2.3 使用Tableau
- 5.3 外部數據源
- 5.3.1 JDBC和SQL數據庫
- 5.3.2 PostgreSQL
- 5.3.3 MySQL
- 5.3.4 Azure Cosmos DB
- 5.3.5 MS SQL Server
- 5.3.6 其他外部數據源
- 5.4 DataFrame和Spark SQL的高階函數
- 5.4.1 方式1:打散再重組
- 5.4.2 方式2:用戶自定義函數
- 5.4.3 針對復雜數據類型的內建函數
- 5.4.4 高階函數
- 5.5 常用的DataFrame操作和Spark SQL操作
- 5.5.1 聯合
- 5.5.2 連接
- 5.5.3 窗口
- 5.5.4 修改
- 5.6 小結
- 第 6 章 Spark SQL 與 Dataset
- 6.1 Java與Scala共用一套API
- 用于Dataset的Scala樣例類和JavaBean類
- 6.2 操作Dataset
- 6.2.1 創建示例數據
- 6.2.2 轉化示例數據
- 6.3 Dataset與DataFrame的內存管理
- 6.4 Dataset編碼器
- 6.4.1 Spark內部格式與Java對象格式
- 6.4.2 序列化與反序列化
- 6.5 使用Dataset的開銷
- 減少開銷的策略
- 6.6 小結
- 第 7 章 Spark 應用的優化與調優
- 7.1 為效率而優化與調優
- 7.1.1 查看與設置Spark配置
- 7.1.2 為大型作業擴展Spark
- 7.2 數據的緩存與持久化
- 7.2.1 DataFrame.cache()
- 7.2.2 DataFrame.persist()
- 7.2.3 什么時候應該緩存和持久化
- 7.2.4 什么時候不應該緩存和持久化
- 7.3 Spark的各種連接算法
- 7.3.1 廣播哈希連接
- 7.3.2 混洗排序合并連接
- 7.4 查看Spark UI
- Spark UI的標簽頁
- 7.5 小結
- 第 8 章 結構化流處理
- 8.1 Spark流處理引擎的演進過程
- 8.1.1 以微型批模擬的流處理
- 8.1.2 從DStream獲取的經驗教訓
- 8.1.3 Structured Streaming的設計哲學
- 8.2 Structured Streaming的編程模型
- 8.3 Structured Streaming查詢
- 8.3.1 五步定義流式查詢
- 8.3.2 探究活躍的流式查詢
- 8.3.3 失敗恢復與“精確一次”語義
- 8.3.4 監控活躍的查詢
- 8.4 流式數據源與數據池
- 8.4.1 文件
- 8.4.2 Kafka
- 8.4.3 自定義流式數據源與數據池
- 8.5 數據轉化
- 8.5.1 增量執行與流處理狀態
- 8.5.2 無狀態轉化操作
- 8.5.3 有狀態轉化操作
- 8.6 有狀態的流式聚合
- 8.6.1 不根據時間維度進行聚合
- 8.6.2 使用事件時間窗口進行聚合
- 8.7 流式連接
- 8.7.1 流與靜態表連接
- 8.7.2 流與流連接
- 8.8 任意的有狀態計算
- 8.8.1 用mapGroupsWithState()為任意有狀態操作建模
- 8.8.2 用超時管理不活躍的分組
- 8.8.3 用flatMapGroupsWithState()進行通用操作
- 8.9 性能調優
- 8.10 小結
- 第 9 章 用 Apache Spark 構建可靠的數據湖
- 9.1 最佳存儲解決方案的重要特點
- 9.2 數據庫
- 9.2.1 數據庫簡介
- 9.2.2 用Spark讀寫數據庫
- 9.2.3 數據庫的不足之處
- 9.3 數據湖
- 9.3.1 數據湖簡介
- 9.3.2 用Spark讀寫數據湖
- 9.3.3 數據湖的不足之處
- 9.4 湖倉一體:下一代存儲解決方案
- 9.4.1 Apache Hudi
- 9.4.2 Apache Iceberg
- 9.4.3 Delta Lake
- 9.5 用Spark與Delta Lake構建湖倉一體的系統
- 9.5.1 為使用Delta Lake配置Spark
- 9.5.2 把數據加載到Delta Lake表中
- 9.5.3 把數據流加載到Delta Lake表中
- 9.5.4 寫數據時強化表結構約束以防止數據損壞
- 9.5.5 修改表結構以適應數據變化
- 9.5.6 轉化已有數據
- 9.5.7 根據操作歷史審計數據變更
- 9.5.8 用時間旅行功能查詢表以前的快照數據
- 9.6 小結
- 第 10 章 用 MLlib 實現機器學習
- 10.1 什么是機器學習
- 10.1.1 監督學習
- 10.1.2 無監督學習
- 10.1.3 為什么將Spark用于機器學習
- 10.2 設計機器學習流水線
- 10.2.1 接入并探索數據
- 10.2.2 創建訓練集與測試集
- 10.2.3 為轉化器準備特征
- 10.2.4 理解線性回歸
- 10.2.5 用預估器構建模型
- 10.2.6 創建流水線
- 10.2.7 評估模型
- 10.2.8 保存和加載模型
- 10.3 超參數調優
- 10.3.1 基于樹的模型
- 10.3.2 k 折交叉驗證
- 10.3.3 優化流水線
- 10.4 小結
- 第 11 章 用 Apache Spark 管理、部署與伸縮機器學習流水線
- 11.1 模型管理
- MLflow
- 11.2 用MLlib部署模型所用的選項
- 11.2.1 批處理
- 11.2.2 流處理
- 11.2.3 導出模型用于實時預測的模式
- 11.3 利用Spark使用非MLlib模型
- 11.3.1 Pandas UDF
- 11.3.2 將Spark用于分布式超參數調優
- 11.4 小結
- 第 12 章 尾聲:Apache Spark 3.0
- 12.1 Spark內核與Spark SQL
- 12.1.1 動態分區裁剪
- 12.1.2 自適應查詢執行
- 12.1.3 SQL連接提示
- 12.1.4 Catalog插件API與DataSourceV2
- 12.1.5 可感知加速器的調度器
- 12.2 Structured Streaming
- 12.3 PySpark、Pandas UDF和Pandas函數API
- 12.3.1 重新設計的帶有Python類型提示的Pandas UDF
- 12.3.2 Pandas UDF中的迭代器支持
- 12.3.3 新的Pandas函數API
- 12.4 有改動的功能
- 12.4.1 支持的與不推薦使用的編程語言
- 12.4.2 DataFrame API和Dataset API的改動
- 12.4.3 DataFrame與SQL的explain命令
- 12.5 小結
- 作者簡介
- 封面簡介
- 看完了 更新時間:2021-12-06 11:52:01