YL13848 9787111591979 9787302496700
Spark SQL是Spark生態環境中核心和基礎的組件,是掌握Spark的關鍵所在。本書從企業級開發的角度齣發,結閤多個企業級應用案例,深入剖析Spark SQL。全書共分為8章,包括:認識Spark SQL、DataFrame原理與常用操作、Spark SQL操作多種數據源、Parquet列式存儲、Spark SQL內置函數與窗口函數、Spark SQL UDF與UDAF、Thrift Server、Spark SQL綜閤應用案例。
本書可以使讀者對Spark SQL有深入的理解,本書適閤於Spark學習愛好者,是學習Spark SQL的入門和提高教材,也是Spark開發工程師開發過程中查閱Spark SQL的案頭手冊。
前言
第1章認識Spark SQL
1.1Spark SQL概述
1.1.1Spark SQL與DataFrame
1.1.2DataFrame與RDD的差異
1.1.3Spark SQL的發展曆程
1.2從零起步掌握Hive
1.2.1Hive的本質是什麼
1.2.2Hive安裝和配置
1.2.3使用Hive分析搜索數據
1.3Spark SQL on Hive安裝與配置
1.3.1安裝Spark SQL
1.3.2安裝MySQL
1.3.3啓動Hive Metastore
1.4Spark SQL初試
1.4.1通過spark-shell來使用Spark SQL
1.4.2Spark SQL的命令終端
1.4.3Spark的Web UI
1.5本章小結
第2章DataFrame原理與常用操作
2.1DataFrame編程模型
2.2DataFrame基本操作實戰
2.2.1數據準備
2.2.2啓動交互式界麵
2.2.3數據處理與分析
2.3通過RDD來構建DataFrame
2.4緩存錶(列式存儲)
2.5DataFrame API應用示例
2.6本章小結
第3章Spark SQL 操作多種數據源
3.1通用的加載/保存功能
3.1.1Spark SQL加載數據
3.1.2Spark SQL保存數據
3.1.3綜閤案例——電商熱銷商品排名
3.2Spark SQL操作Hive示例
3.3Spark SQL操作JSON數據集示例
3.4Spark SQL操作HBase示例
3.5Spark SQL操作MySQL示例
3.5.1安裝並啓動MySQL
3.5.2準備數據錶
3.5.3操作MySQL錶
3.6Spark SQL操作MongoDB示例
3.6.1安裝配置MongoDB
3.6.2啓動MongoDB
3.6.3準備數據
3.6.4Spark SQL操作MongoDB
3.7本章小結
第4章Parquet列式存儲
4.1Parquet概述
4.1.1Parquet的基本概念
4.1.2Parquet數據列式存儲格式應用舉例
4.2Parquet的Block配置及數據分片
4.2.1Parquet的Block的配置
4.2.2Parquet 內部的數據分片
4.3Parquet序列化
4.3.1Spark實施序列化的目的
4.3.2Parquet兩種序列化方式
4.4本章小結
第5章Spark SQL內置函數與窗口函數
5.1Spark SQL內置函數
5.1.1Spark SQL內置函數概述
5.1.2Spark SQL內置函數應用實例
5.2Spark SQL窗口函數
5.2.1Spark SQL窗口函數概述
5.2.2Spark SQL窗口函數分數查詢統計案例
5.2.3Spark SQL窗口函數NBA常規賽數據統計案例
5.3本章小結
第6章Spark SQL UDF與UDAF
6.1UDF概述
6.2UDF示例
6.2.1Hobby_count函數
6.2.2Combine函數
6.2.3Str2Int函數
6.2.4Wsternstate函數
6.2.5ManyCustomers函數
6.2.6StateRegion函數
6.2.7DiscountRatio函數
6.2.8MakeStruct函數
6.2.9MyDateFilter函數
6.2.10MakeDT函數
6.3UDAF概述
6.4UDAF示例
6.4.1ScalaAggregateFunction函數
6.4.2GeometricMean函數
6.4.3CustomMean函數
6.4.4BelowThreshold函數
6.4.5YearCompare函數
6.4.6WordCount函數
6.5本章小結
第7章Thrift Server
7.1Thrift概述
7.1.1Thrift的基本概念
7.1.2Thrift的工作機製
7.1.3Thrift的運行機製
7.1.4一個簡單的Thrift 實例
7.2Thrift Server的啓動過程
7.2.1Thrift Sever啓動詳解
7.2.2HiveThriftServer2類的解析
7.3Beeline操作
7.3.1Beeline連接方式
7.3.2在Beeline中進行SQL查詢操作
7.3.3通過Web控製颱查看用戶進行的操作
7.4Thrift Server應用示例
7.4.1示例源代碼
7.4.2關鍵代碼行解析
7.4.3測試運行
7.4.4運行結果解析
7.4.5Spark Web控製颱查看運行日誌
7.5本章小結
第8章Spark SQL綜閤應用案例
8.1綜閤案例實戰——電商網站日誌多維度數據分析
8.1.1數據準備
8.1.2數據說明
8.1.3數據創建
8.1.4數據導入
8.1.5數據測試和處理
8.2綜閤案例實戰——電商網站搜索排名統計
8.2.1案例概述
8.2.2數據準備
8.2.3實現用戶每天搜索前3名的商品排名統計
8.3本章小結
第一部分 入門篇
第1章 初識Spark SQL 3
1.1 Spark SQL的前世今生 3
1.2 Spark SQL能做什麼 4
第2章 Spark安裝、編程環境搭建以及打包提交 6
2.1 Spark的簡易安裝 6
2.2 準備編寫Spark應用程序的IDEA環境 10
2.3 將編寫好的Spark應用程序打包成jar提交到Spark上 18
第二部分 基礎篇
第3章 Spark上的RDD編程 23
3.1 RDD基礎 24
3.1.1 創建RDD 24
3.1.2 RDD轉化操作、行動操作 24
3.1.3 惰性求值 25
3.1.4 RDD緩存概述 26
3.1.5 RDD基本編程步驟 26
3.2 RDD簡單實例—wordcount 27
3.3 創建RDD 28
3.3.1 程序內部數據作為數據源 28
3.3.2 外部數據源 29
3.4 RDD操作 33
3.4.1 轉化操作 34
3.4.2 行動操作 37
3.4.3 惰性求值 38
3.5 嚮Spark傳遞函數 39
3.5.1 傳入匿名函數 39
3.5.2 傳入靜態方法和傳入方法的引用 40
3.5.3 閉包的理解 41
3.5.4 關於嚮Spark傳遞函數與閉包的總結 42
3.6 常見的轉化操作和行動操作 42
3.6.1 基本RDD轉化操作 43
3.6.2 基本RDD行動操作 48
3.6.3 鍵值對RDD 52
3.6.4 不同類型RDD之間的轉換 56
3.7 深入理解RDD 57
3.8 RDD 緩存、持久化 59
3.8.1 RDD緩存 59
3.8.2 RDD持久化 61
3.8.3 持久化存儲等級選取策略 63
3.9 RDD checkpoint容錯機製 64
第4章 Spark SQL編程入門 66
4.1 Spark SQL概述 66
4.1.1 Spark SQL是什麼 66
4.1.2 Spark SQL通過什麼來實現 66
4.1.3 Spark SQL 處理數據的優勢 67
4.1.4 Spark SQL數據核心抽象——DataFrame 67
4.2 Spark SQL編程入門示例 69
4.2.1 程序主入口:SparkSession 69
4.2.2 創建 DataFrame 70
4.2.3 DataFrame基本操作 70
4.2.4 執行SQL查詢 72
4.2.5 全局臨時錶 73
4.2.6 Dataset 73
4.2.7 將RDDs轉化為DataFrame 75
4.2.8 用戶自定義函數 78
第5章 Spark SQL的DataFrame操作大全 82
5.1 由JSON文件生成所需的DataFrame對象 82
5.2 DataFrame上的行動操作 84
5.3 DataFrame上的轉化操作 91
5.3.1 where條件相關 92
5.3.2 查詢指定列 94
5.3.3 思維開拓:Column的巧妙應用 99
5.3.4 limit操作 102
5.3.5 排序操作:order by和sort 103
5.3.6 group by操作 106
5.3.7 distinct、dropDuplicates去重操作 107
5.3.8 聚閤操作 109
5.3.9 union閤並操作 110
5.3.10 join操作 111
5.3.11 獲取指定字段統計信息 114
5.3.12 獲取兩個DataFrame中共有的記錄 116
5.3.13 獲取一個DataFrame中有另一個DataFrame中沒有的記錄 116
5.3.14 操作字段名 117
5.3.15 處理空值列 118
第6章 Spark SQL支持的多種數據源 121
6.1 概述 121
6.1.1 通用load/save 函數 121
6.1.2 手動指定選項 123
6.1.3 在文件上直接進行SQL查詢 123
6.1.4 存儲模式 123
6.1.5 持久化到錶 124
6.1.6 bucket、排序、分區操作 124
6.2 典型結構化數據源 125
6.2.1 Parquet 文件 125
6.2.2 JSON 數據集 129
6.2.3 Hive錶 130
6.2.4 其他數據庫中的數據錶 133
第三部分 實踐篇
第7章 Spark SQL 工程實戰之基於WiFi探針的商業大數據分析技術 139
7.1 功能需求 139
7.1.1 數據收集 139
7.1.2 數據清洗 140
7.1.3 客流數據分析 141
7.1.4 數據導齣 142
7.2 係統架構 142
7.3 功能設計 143
7.4 數據庫結構 144
7.5 本章小結 144
第8章 第一個Spark SQL應用程序 145
8.1 完全分布式環境搭建 145
8.1.1 Java 環境配置 145
8.1.2 Hadoop 安裝配置 146
8.1.3 Spark安裝配置 149
8.2 數據清洗 150
8.3 數據處理流程 153
8.4 Spark程序遠程調試 164
8.4.1 導齣jar包 164
8.4.2 IDEA配置 168
8.4.3 服務端配置 170
8.5 Spark的Web界麵 171
8.6 本章小結 172
第四部分 優化篇
第9章 讓Spark程序再快一點 175
9.1 Spark執行流程 175
9.2 Spark內存簡介 176
9.3 Spark的一些概念 177
9.4 Spark編程四大守則 178
9.5 Spark調優七式 183
9.6 解決數據傾斜問題 192
9.7 Spark 執行引擎 Tungsten 簡介 195
9.8 Spark SQL解析引擎Catalyst 簡介 197
9.9 本章小結 200
我這次選擇這本書,是希望能夠係統地學習 Spark SQL 這個強大的工具,並且能夠將其應用到實際的大數據開發工作中。我個人比較注重學習的深度和廣度,所以希望這本書能夠涵蓋 Spark SQL 的方方麵麵,從基礎的概念和原理,到進階的應用和優化。我特彆希望書中能夠詳細講解 Spark SQL 的執行計劃生成和優化機製,以及如何通過 SQL 語句的編寫來影響 Spark 的執行效率。另外,我希望書中還能介紹一些 Spark SQL 與其他大數據組件的集成,比如與 Hive、HBase、Kafka 等的配閤使用,這樣我纔能構建更完整的大數據處理流程。數據存儲管理這部分我也非常感興趣,希望能瞭解如何在高並發、海量數據的場景下,進行有效的數據存儲和管理,以保證數據的一緻性和可用性。這本書如果能夠提供大量的實戰案例,並且能夠引導我解決實際開發中遇到的難題,那我將會非常滿意。
評分作為一名對數據分析工作有著執著追求的開發者,我一直在尋找一本能夠係統性地講解大數據分析技術、並且能夠提供實踐指導的書籍。這本書的標題“包郵Spark SQL大數據實例開發教程+入門與實踐指南 數據存儲管理分析書籍”讓我眼前一亮,它精準地抓住瞭我最核心的需求。我特彆關注書中關於“數據存儲管理”的部分,因為我深知,沒有良好的數據基礎,任何高深的分析技術都將是空中樓閣。我希望這本書能詳細介紹如何選擇閤適的數據存儲方案,如何對數據進行有效的組織和管理,以及如何優化數據存儲以提高查詢效率。同時,“實例開發教程”和“入門與實踐指南”這兩個關鍵詞也錶明瞭本書的實用性。我期待書中能提供豐富、貼近實際項目開發需求的案例,能夠從零開始,一步步地帶領我掌握Spark SQL的開發技巧。我希望在閱讀完這本書後,我能夠對大數據存儲、管理和分析有一個全麵而深入的理解,並且能夠獨立設計和實現一套高效的大數據分析解決方案。
評分這次買這本書,主要是因為被它的“實例開發教程”和“入門與實踐指南”這些字眼吸引住瞭。我一直覺得,理論知識再紮實,如果沒有實際操作的經驗,也很難真正掌握一項技術。我希望這本書裏能包含大量的代碼示例,並且這些示例能覆蓋到 Spark SQL 開發的各個方麵,從最基礎的數據讀取、寫入,到復雜的數據轉換、清洗,再到更高級的窗口函數、UDF 的使用。更重要的是,我希望這些實例能貼近實際工作場景,比如處理電商交易數據、用戶行為日誌、物聯網設備數據等等,這樣我纔能更好地將學到的知識應用到自己的工作中。書中關於數據存儲管理的部分,我也很期待。畢竟,在大數據領域,高效的數據存儲和管理是支撐一切分析和開發的基礎。如果能介紹一些常見的分布式存儲係統,比如 HDFS、S3,以及它們與 Spark SQL 的集成方式,那就更好瞭。我希望這本書能讓我從“小白”變成一個能夠獨立開發 Spark SQL 應用的“小能手”。
評分這本書我看瞭好久,終於趁著打摺的時候入手瞭。說實話,我一直對大數據這個領域挺感興趣的,尤其是在工作中接觸到一些數據處理的需求,感覺光靠 Excel 和一些簡單的腳本已經越來越力不從心瞭。Spark SQL 聽起來就非常強大,能處理海量數據,還能用 SQL 的方式來操作,這對我這種 SQL 比較熟悉的人來說,簡直是福音。我特彆期待這本書能詳細講解 Spark SQL 的核心概念,比如 DataFrame 和 Dataset 的區彆和用法,各種 SQL 函數的實現原理,以及如何在 Spark SQL 中進行高效的數據過濾、聚閤和連接。還有,書中關於性能優化的部分,如果能給齣一些實際的案例和調優技巧,那對我來說就太有價值瞭。畢竟,在大數據處理中,性能往往是決定項目成敗的關鍵因素。我希望這本書能不僅僅是概念的堆砌,而是能真正地指導我如何去落地,如何去解決實際問題。讀完這本書,我希望能對 Spark SQL 有一個係統性的認識,並且能獨立完成一些大數據分析的任務。
評分我選擇這本書,是希望它能夠成為我深入理解 Spark SQL 的敲門磚,並且能夠為我提供一條清晰的學習路徑。我之前也接觸過一些大數據相關的書籍,但總感覺不夠深入,或者過於理論化。這本書的“實例開發教程”和“入門與實踐指南”的定位,讓我覺得它會更加注重實際操作和解決問題的能力。我特彆期待書中能夠詳細講解 Spark SQL 的各種 API 和函數,並且通過豐富的代碼示例來展示它們的用法。同時,我也希望這本書能夠觸及到數據存儲管理的一些關鍵問題,比如如何選擇閤適的數據格式(Parquet、ORC 等),如何進行數據分區和分桶,以及如何利用這些技術來優化 Spark SQL 的查詢性能。如果書中還能包含一些關於 Spark SQL 在實際項目中的應用案例,並且能夠講解這些案例的設計思路和實現細節,那對我來說將是莫大的幫助。我希望讀完這本書,我能夠對 Spark SQL 有一個紮實的基礎,並且能夠自信地將其應用於我的數據開發和分析工作中。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.tinynews.org All Rights Reserved. 静思书屋 版权所有