內容簡介
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本章小結
前言/序言
“Use of MapReduce engine for Big Data projects will decline, replaced by Apache Spark�薄�
MapReduce計算模型的使用會越來越少,最終將被Apache Spark所取代。
——Hadoop之父Doug Cutting寫作背景Spark是一個快速大規模數據處理的通用引擎。它給Java、Scala、Python和R等語言提供瞭高級API,並基於統一抽象的RDD(彈性分布式數據集),逐漸形成瞭一套自己的生態係統。這個生態係統主要包括負責SQL和結構化數據處理的Spark SQL、負責實時流處理的Spark Streaming、負責圖計算的Spark GraphX以及機器學習子框架Mlib。Spark在處理各種場景時,提供給用戶統一的編程體驗,可極大地提高編程效率。
Hive是運行在Hadoop上的SQL on Hadoop工具,它的推齣是為瞭給熟悉RDBMS但又不理解MapReduce的技術人員提供快速上手的工具,但是MapReduce在計算過程中消耗大量I/O資源,降低瞭運行效率。為瞭提高SQL on Hadoop的效率,Shark齣現瞭,它使得SQL on Hadoop的性能比Hive有瞭10~100倍的提高。但Shark對於Hive的過度依賴(如采用Hive的語法解析器、查詢優化器等),製約瞭Spark的發展,所以提齣瞭Spark SQL項目,Spark SQL拋棄Shark原有的弊端,又汲取瞭Shark的一些優點,如內存列存儲(In-Memory Columnar Storage)、Hive的兼容性等,由於擺脫瞭對Hive的依賴性,Spark SQL在數據兼容、性能優化、組件擴展等方麵的性能都得到瞭極大的提升。
Spark SQL是Spark生態環境中最核心和最基礎的組件,是掌握Spark的關鍵所在。由於目前市場上介紹Spark技術的書籍比較少,尤其是單獨講解Spark SQL的書更是鳳毛麟角,我們特意編寫瞭這本理論和實戰相結閤的Spark SQL書籍,在介紹Spark SQL核心技術的同時又配備瞭豐富的示例,同時還穿插瞭源代碼的分析,使讀者能從更深層次來把握Spark SQL的核心技術。
內容速覽本書完全從企業級開發的角度齣發,結閤多個企業級應用案例,深入剖析Spark SQL。
全書一共分為8章,主要內容概括如下:
第1章認識Spark SQL,引領讀者瞭解Spark SQL的基礎知識,接下來的第2章至第7章,結閤實戰案例,引導讀者掌握Spark SQL的核心知識,這6章內容分彆為:DataFrame原理與常用操作、Spark SQL操作多種數據源、Parquet列式存儲、Spark SQL內置函數與窗口函數、Spark SQL UDF與UDAF、Thrift Server;本書的最後部分,第8章Spark SQL綜閤應用案例歸納並綜閤運用瞭全部Spark SQL知識點,是深入理解Spark SQL的經典案例。
本書可以使讀者對Spark SQL有深入的理解,是Spark愛好者用來學習Spark SQL的理想教程,也是Spark開發工程師在開發過程中可隨時查閱的案頭手冊。
本書作者本書由王傢林和段智華編寫。
預備知識在學習本書之前讀者需要熟悉基本的Linux命令及Java、Scala語言,掌握基本的Spark知識架構,能夠搭建Spark集群環境。
緻謝在本書編寫的過程中,作者參考瞭很多網絡上的書籍和博客,在此謝謝各位作者,正是你們的無私奉獻,纔推動瞭Spark技術的快速發展。
特彆感謝“小小”同學為本書的編寫提供的各種協調和熱心幫助。
由於筆者能力有限,書中難免存在錯誤或錶達不準確的內容,懇請大傢批評指正,希望大傢一起努力使Spark技術在大數據計算領域裏推廣開來。
作者2017.9
Spark SQL大數據實例開發教程 下載 mobi epub pdf txt 電子書
評分
☆☆☆☆☆
書知識點太老瞭,居然是1.6的,現在都2.3瞭,至少應該是2.X
評分
☆☆☆☆☆
書知識點太老瞭,居然是1.6的,現在都2.3瞭,至少應該是2.X
評分
☆☆☆☆☆
書知識點太老瞭,居然是1.6的,現在都2.3瞭,至少應該是2.X
評分
☆☆☆☆☆
看瞭好久纔來評價,以保持評價的客觀性.說實話這本書實在太一般瞭,spark2.0以後變化很大,而本書還是基於spark1.6來講。失望
評分
☆☆☆☆☆
看瞭好久纔來評價,以保持評價的客觀性.說實話這本書實在太一般瞭,spark2.0以後變化很大,而本書還是基於spark1.6來講。失望
評分
☆☆☆☆☆
書知識點太老瞭,居然是1.6的,現在都2.3瞭,至少應該是2.X
評分
☆☆☆☆☆
看瞭好久纔來評價,以保持評價的客觀性.說實話這本書實在太一般瞭,spark2.0以後變化很大,而本書還是基於spark1.6來講。失望
評分
☆☆☆☆☆
看瞭好久纔來評價,以保持評價的客觀性.說實話這本書實在太一般瞭,spark2.0以後變化很大,而本書還是基於spark1.6來講。失望
評分
☆☆☆☆☆
書知識點太老瞭,居然是1.6的,現在都2.3瞭,至少應該是2.X