Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版

鄭萌

  • Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版-preview-1
  • Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版-preview-2
  • Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版-preview-3
Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版-preview-1

相關主題

商品描述

《Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版》圍繞大數據開發的相關技術,以大數據開發的基本要求為綱,以企業在筆試和麵試中的試題為核心, 從企業考核的角度組織內容,並對這些試題加上了詳細的分析說明,以考促學。《Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版》既包括 Java、Python 等基礎編程知識,又涵蓋 Hadoop、Hive/HBase、Tushare、NumPy、Pandas、Matplotlib 等大數據開發關的技術。全書分為 4 篇 14 章,第 1 篇為 Java 編程,第 2 篇為 Python 編程,第 3 篇為大數據開發,第 4 篇為數據分析與可視化。本書還配有大量的視頻講解,方便讀者進一步學習。 《Offer來敲門 大數據開發面試筆試精講 在線真題實訓視頻版》適合讀者在學習過程中進行自測,也適合讀者在應聘之前進行有針對性的復習。本書對大數據相關的重要知識點都有詳細的講解,並配備了完整的從知識到實踐的學習視頻,也適合作為系統學習的材料。

目錄大綱

目.錄

Contents

第1篇.Java編程

第1章.Java面向對象編程...002

1.1 類和對象 …………………………003

1.1.1 類和對象概述 ……………003

1.1.2 構造方法 …………………005

1.1.3 方法的定義 ………………008

1.1.4 修飾符和靜態導入 ………009

1.1.5 this關鍵字 ………………012

1.1.6 Lambda表達式 ……………013

1.1.7 註解 ………………………014

1.2 封裝 ………………………………015

1.3 單例 ………………………………015

1.4 繼承 ………………………………016

1.5 多態 ………………………………020

1.6 接口 ………………………………022

1.7 內部類 ……………………………024

第2章.Java SE核心API...026

2.1 常用API …………………………027

2.1.1 字符串 ……………………027

2.1.2 日期時間 …………………029

2.1.3 System(in/out) …………030

2.1.4 自動裝箱和拆箱 …………031

2.2 集合API …………………………032

2.2.1 Collection …………………032

2.2.2 泛型和增強泛型 …………033

2.2.3 List/Vector/Stack …………034

2.2.4 Set/HashSet ………………036

2.2.5 hashCode() ………………036

2.2.6 Collections …………………037

2.2.7 Map ………………………038

2.2.8 Stream ……………………038

2.3  異常 ………………………………040

2.3.1 基礎 ………………………040

2.3.2 拋出異常 …………………041

2.3.3 捕獲異常 …………………042

2.3.4 自定義異常 ………………043

2.4 線程 ………………………………044

2.4.1 線程概述  …………………044

2.4.2 線程的生命周期  …………046

2.4.3 多線程、鎖和死鎖 ………047

2.4.4 Lock  ………………………048

2.4.5 線程池  ……………………049

2.5 文件操作和I/O流 ………………050

2.5.1 文件和目錄操作  …………050

2.5.2 字節流和字符流  …………051

2.5.3 轉換流  ……………………052

第3章.Java數據結構和算法..054

3.1 排序算法 …………………………055

3.1.1 冒泡排序算法 ……………055

3.1.2 快速排序算法 ……………055

3.1.3 快速排序案例 ……………058

3.1.4 數據結構概述 ……………058

3.1.5 數組 ………………………058

3.1.6 數組接口設計 ……………059

3.1.7 快速排序的核心算法 ……059

3.1.8  二分查找與拉格朗日插值

查找 ………………………059

3.1.9 內存模式 …………………060

3.1.10 快速排序處理相等 ………061

3.1.11 插入排序算法 ……………062

3.1.12 二分查找插入排序算法 …063

3.1.13 歸並排序算法 ……………063

3.1.14 迷宮AI實現 ……………066

3.1.15 快速排序算法 ……………066

3.1.16 快速排序的相等優化 ……066

3.1.17 數據去重復計次處理 ……067

3.1.18 密碼概率實現 ……………067

3.1.19 堆排序算法 ………………067

3.1.20 大頂堆和小頂堆 …………069

3.1.21 桶排序 ……………………070

3.1.22 大數據分析與清洗概述 …071

3.1.23 數據清理和排序 …………072

3.1.24 數據分割 …………………072

3.1.25 數據歸並 …………………072

3.1.26 希爾排序 …………………073

3.1.27 棧模擬線性遞歸 …………073

3.1.28 棧模擬樹狀遞歸 …………074

3.1.29 文件遍歷 …………………075

3.1.30 棧模擬文件遍歷 …………075

3.1.31 遞歸層級改造為棧 ………076

3.1.32 取極大值 …………………076

3.1.33 文件歸並排序 ……………077

3.1.34 文件夾歸並 ………………077

3.1.35 排序可視化 ………………078

3.1.36 基數排序優化版本 ………078

3.2 查找算法與實戰 …………………078

3.2.1 高效磁盤查詢數據模型 …078

3.2.2  數據預處理及內存限制無法

實現 ………………………079

3.2.3 大批量數據處理 …………079

3.2.4  大批量數據的二分查找

文件 ………………………080

3.2.5  大批量數據的完整版磁盤

二分查找 …………………080

3.2.6 索引二分查找 ……………081

3.2.7 數據結構基礎 ……………081

3.3 數組 ………………………………082

3.3.1 數組的基本使用 …………082

3.3.2 數組查詢操作 ……………083

3.3.3 移動內存刪除數據 ………083

3.3.4 刪除數組中的數據 ………083

3.3.5 數組插入操作 ……………084

3.3.6 數組的測試 ………………084

3.4 鏈表 ………………………………085

3.4.1 鏈表簡介 …………………085

3.4.2 鏈表循環 …………………085

3.4.3 鏈表插入 …………………086

3.4.4 頭插法和尾插法 …………086

3.4.5 鏈表刪除插入的簡單模式 …087

3.4.6 鏈表刪除操作 ……………087

3.4.7 鏈表插入操作 ……………088

3.4.8 鏈表冒泡排序 ……………088

3.4.9 鏈表插入排序 ……………088

3.5 樹與圖論 …………………………089

3.5.1 紅黑樹簡介 ………………090

3.5.2 B+樹 ………………………090

3.5.3 圖論 ………………………091

第4章.數據庫和JDBC....093

4.1 Oracle基礎 ………………………094

4.2 DDL和DCL ………………………095

4.2.1 創建表 ……………………095

4.2.2 創建表空間 ………………096

4.2.3 用戶管理 …………………097

4.3 DML和DQL ……………………098

4.4 Oracle函數 ………………………099

4.5 索引 ………………………………100

4.6 視圖 ………………………………101

4.7 序列 ………………………………102

4.8 PL/SQL ……………………………103

4.8.1 PL/SQL基礎 ………………103

4.8.2 游標 ………………………103

4.8.3 存儲過程 …………………104

4.8.4 觸發器 ……………………105

4.8.5 異常處理 …………………106

4.9 JDBC驅動 ………………………106

4.10 JDBC CRUD ……………………107

4.11 Statement …………………………108

4.12 JDBC連接池 ……………………109

4.13 JDBC調用存儲過程 ……………110

4.14 JDBC事務管理 …………………110

第2篇.Python編程

第5章.Python快速入門....114

5.1 Python環境安裝 …………………115

5.1.1 Python安裝與HelloWorld  …115

5.1.2  Python IDE安裝與運行系統

指令 ………………………115

5.1.3 安裝Python 3並配置IDE …115

5.1.4  安裝專業版IDE並實現

HelloPro …………………116

5.1.5 解決中文亂碼 ……………116

5.2 Python基本語法 …………………116

5.2.1 代碼調用 …………………116

5.2.2 命名規則 …………………117

5.2.3 縮進 ………………………117

5.2.4 多行連接 …………………118

5.2.5 字符串 ……………………118

5.2.6 多行註釋與單行註釋 ……118

5.2.7  多行代碼合並成一行及輸入

輸出 ………………………119

5.3 函數 ………………………………119

5.3.1 函數的定義 ………………119

5.3.2 函數的參數 ………………120

5.3.3 命名參數 …………………120

5.3.4 默認參數 …………………120

5.3.5 可變參數 …………………121

5.3.6 lambda函數 ………………121

5.4 多文件組織 ………………………121

5.4.1  Python文件之間的互相

調用 ………………………121

5.4.2 from…import導入 ………122

5.4.3 from…import全部導入 …122

5.5 字符串處理 ………………………122

5.5.1 字符串格式化 ……………123

5.5.2 轉義字符與去除空格 ……124

5.5.3 字符串加法 ………………124

5.5.4 字符串截取 ………………124

5.5.5 字符串比較 ………………125

5.5.6 字符串翻轉 ………………125

5.5.7 字符串搜索與替換 ………125

5.6 正則表達式 ………………………126

5.6.1 截取字符串 ………………126

5.6.2 .ndall函數 ………………127

5.6.3 匹配 ………………………127

5.6.4 搜索字符串 ………………128

第6章.Python編程實踐....129

6.1 數據切片 …………………………130

6.2 枚舉 ………………………………130

6.3 序列 ………………………………130

6.4 生成器 ……………………………131

6.5 函數進階 …………………………131

6.5.1 高階函數 …………………132

6.5.2 map-reduce編程 …………132

6.5.3 過濾數據 …………………132

6.5.4 自定義排序 ………………133

6.5.5 函數的返回值 ……………133

6.5.6 函數的別名與偏函數 ……134

6.6 時間函數 …………………………134

6.6.1 休眠 ………………………134

6.6.2 時間與日歷 ………………135

6.6.3 時間差 ……………………135

6.7 交互式代碼編程 …………………136

6.8 文件操作 …………………………136

6.8.1  文件的簡單屬性與寫入

文件 ………………………136

6.8.2 文件讀取簡單案例 ………137

6.8.3 按行讀取文件 ……………137

6.8.4 字符編碼讀取問題 ………138

6.8.5 os模塊 ……………………138

6.8.6 遞歸與遍歷文件夾 ………138

6.9 面向對象編程基礎 ………………139

6.9.1 簡單的面向對象類 ………139

6.9.2 類的構造函數 ……………140

6.9.3 self代表類的實例 ………140

6.9.4 類與實例的不同 …………141

6.9.5 類的數據方法權限限定 …141

6.9.6 類的詳細屬性 ……………141

6.9.7  類的析構函數與手動回收

內存 ………………………142

6.9.8 操作類的屬性 ……………142

6.9.9 繼承 ………………………143

6.9.10 多繼承 ……………………144

6.9.11 重寫 ………………………144

6.9.12 重載 ………………………145

6.9.13  使用type()函數查看對象

類型 ………………………146

6.9.14  使用isinstance()函數判斷

對象類型 …………………146

第7章.Python編程高級特性..147

7.1 面向對象編程進階 ………………148

7.1.1 動態添加屬性和方法 ……148

7.1.2 限制添加屬性 ……………148

7.1.3 方法作為屬性的補充 ……149

7.1.4 將方法當作屬性 …………149

7.1.5 gc引用計數 ………………150

7.1.6 抽象類 ……………………150

7.1.7 多態 ………………………151

7.2 文件編碼 …………………………151

7.2.1  文件強化數據查詢GBK

文件 ………………………151

7.2.2 處理復雜文件編碼 ………152

7.3 異常處理 …………………………152

7.3.1 異常的概念 ………………152

7.3.2 .nally ………………………153

7.3.3 自定義異常 ………………154

7.3.4 編譯檢查判斷assert ………154

7.4 進程和線程 ………………………155

7.4.1 進程和線程簡介 …………155

7.4.2 簡單多線程 ………………156

7.5 編寫Hadoop wordcount …………156

7.6 集合 ………………………………157

7.6.1 namedtuple ………………157

7.6.2 deque ………………………157

7.6.3 defaultdict …………………158

7.6.4 OrderedDict ………………158

7.6.5 Counter ……………………158

7.6.6 list …………………………159

7.6.7 tuple ………………………159

7.6.8 dict …………………………160

7.7 線程進階 …………………………160

7.7.1 基於函數創建線程 ………161

7.7.2 基於類創建線程 …………161

7.7.3 線程同步 …………………162

7.8 http編程 …………………………163

7.9 網絡通信編程 ……………………164

第3篇.大數據開發

第8章.Hadoop.......168

8.1 環境搭建 …………………………169

8.1.1 系統安裝+VMTools ……169

8.1.2 JDK+Eclipse ………………169

8.1.3 MySQL的操作與使用 ……170

8.1.4 Oracle的安裝準備 ………170

8.1.5 Oracle 的安裝 ……………171

8.1.6 Hadoop環境搭建 …………171

8.1.7  WordCount實例實現

和分析 ……………………172

8.1.8  在 CentOS環境下MySQL

的配置 ……………………172

8.1.9 Hive的安裝與配置 ………173

8.1.10 HBase的安裝與配置 ……173

8.1.11 Sqoop的安裝與配置 ……173

8.1.12 Spark的安裝與配置 ……174

8.1.13 Storm的準備工作 ………174

8.1.14 Storm的搭建 ……………174

8.2 Hadoop入門 ………………………175

8.2.1 Hadoop簡介 ………………175

8.2.2 Hadoop預覽 ………………176

8.2.3 Hadoop Eclipse配置 ……176

8.2.4 HDFS Shell操作 …………177

8.2.5 HDFS的運行原理 ………177

8.2.6 HDFS訪問雲端 …………178

8.2.7 HDFS創建文件 …………178

8.2.8 HDFS保存文本到雲端 …179

8.2.9 HDFS刪除文件 …………180

8.2.10 HDFS判斷文件是否存在 …180

8.2.11 HDFS遍歷結點 …………180

8.2.12  HDFS搜索文件所在的

主機位置 …………………181

8.2.13 HDFS文件重命名與上傳 …182

第9章.Hive/HBase.....183

9.1 Scala編程 …………………………184

9.1.1 Scala環境的安裝 …………184

9.1.2 Scala常量與變量 …………184

9.1.3 Scala數據類型 ……………185

9.1.4 Scala運算符 ………………185

9.1.5 Scala條件選擇 ……………185

9.1.6 Scala循環 …………………186

9.1.7 Scala匿名函數 ……………186

9.1.8 Scala可變參數 ……………187

9.1.9 Scala默認參數 ……………187

9.1.10 Scala高階函數 …………188

9.1.11 Scala遞歸與參數賦值 …188

9.1.12 Scala函數 ………………188

9.1.13 Scala數組 ………………189

9.1.14 Scala字符串 ……………190

9.1.15 Scala類與對象 …………190

9.1.16 Scala類的繼承 …………191

9.1.17 Scala的特徵 ……………192

9.1.18 Scala的List ……………192

9.1.19 Scala的Set ………………192

9.1.20 Scala的Map ……………193

9.1.21 類的重載 …………………193

9.1.22 Scala的Tuple ……………194

9.1.23 Scala的Option …………194

9.1.24 Scala的迭代器 …………195

9.1.25 Scala的訪問權限 ………195

9.1.26 Scala正則表達式 ………196

9.1.27 Scala的異常處理 ………196

9.1.28 Scala文件操作 …………196

9.2 Hive實戰 …………………………197

9.2.1 Hive簡介 …………………197

9.2.2 Hive數據操作 ……………197

9.2.3 Hive數據導入 ……………198

9.2.4 Hive數據查詢 ……………199

9.2.5 Hive創建分區 ……………200

9.2.6 Hive命令行 ………………201

9.2.7  Hive內置函數與內置

運算符 ……………………201

9.2.8 Hive自定義函數 …………202

9.2.9 Hive訪問JDBC …………203

9.3 HBase數據庫處理 ………………203

9.3.1 Hadoop多語言支持 ………204

9.3.2  Hadoop PageRank算法

簡介 ………………………204

9.3.3 Hadoop PageRank實現 …204

9.3.4 HBase簡介 ………………205

9.3.5 HBase Shell示範 …………205

9.3.6 HBase Shell操作數據表 …206

9.3.7 Java訪問HBase …………207

9.3.8 Java訪問所有表與刪除表 …208

9.3.9  使用Java API在HBase中插入數據 ………………………208

9.3.10 HBase數據查詢 …………209

9.3.11 HBase的刪除操作 ………210

9.3.12 數據篩選 …………………210

第10章.Python大數據開發..212

10.1 Hadoop原理與Python編程 …………213

10.1.1 Hadoop原理 ……………213

10.1.2 Hadoop配置 ……………213

10.1.3 HDFS ……………………214

10.1.4 MapReduce ………………215

10.1.5 Hadoop Combiner ………216

10.1.6 餘弦相似度 ………………218

10.2 Spark ……………………………218

10.2.1 Spark簡介 ………………218

10.2.2 Spark編程 ………………219

10.2.3 Spark RDD ………………220

10.2.4 Spark SQL ………………223

10.2.5 Spark Dataset和DataFrame …224

第4篇.數據分析與可視化

第11章.Tushare.......228

11.1 Tushare環境部署 ………………229

11.2 Tushare簡單使用 ………………229

11.3 Tushare保存數據 ………………229

第12章.NumPy.......230

12.1 NumPy基礎 ……………………231

12.1.1 NumPy概述 ……………231

12.1.2 NumPy ndarray對象 ……231

12.1.3 NumPy數據類型  ………232

12.1.4 NumPy數組的常見屬性 …232

12.1.5  NumPy創建數組並初始化 …232

12.1.6  NumPy根據已有數組創建

數組 ………………………233

12.1.7  NumPy從數值範圍創建

數組 ………………………233

12.1.8 NumPy一維數組切片 …234

12.1.9 NumPy多維數組的切片 …235

12.1.10 NumPy 數組的高級索引 …236

12.1.11 NumPy bool表達式索引 …237

12.1.12 NumPy廣播 ……………237

12.1.13  NumPy(Python)迭

代器 ……………………238

12.1.14 NumPy高級迭代 ………239

12.2 NumPy數組操作與教學 ………239

12.2.1 NumPy數組變形折疊 …239

12.2.2 NumPy數組翻轉操作 …240

12.2.3 NumPy數組維度操作 …241

12.2.4 NumPy數組組合與切割 …242

12.2.5 NumPy數組元素內部操作 …242

12.2.6 NumPy位操作與補碼 …243

12.2.7 NumPy字符串 …………244

12.2.8 NumPy全局預覽 ………244

12.2.9 NumPy數學函數 ………244

12.2.10 NumPy常見數組計算 …245

12.2.11 NumPy統計計算 ………245

12.2.12 NumPy數組排序 ………246

12.2.13 大端與小端 ……………246

12.2.14 副本與視圖 ……………247

12.2.15 NumPy矩陣庫 …………247

12.2.16 NumPy線性代數 ………247

12.2.17 NumPy繪制函數曲線 …248

12.2.18 NumPy高級繪圖 ………248

12.2.19 NumPy序列化 …………248

第13章.Pandas.......250

13.1 Pandas數據訪問與數據結構 ……251

13.1.1 Pandas用於分析數據 ……251

13.1.2 Pandas操作數據行與列 …251

13.1.3  Pandas結合Tushare選擇

行與列 ……………………252

13.1.4 Pandas選擇多列與計次 …252

13.1.5 Pandas對比數據框架索引 …252

13.1.6 Pandas類型Series ………253

13.1.7 Pandas實戰DataFrame …253

13.1.8  Pandas DataFrame與Series

計算 ………………………253

13.2 Pandas數據讀寫 …………………254

13.2.1  Pandas處理CSV、XLS、

JSON數據 ………………254

13.2.2  Pandas處理MySQL數

據庫 ………………………254

13.3 Pandas數據處理 …………………255

13.3.1  None與np.nan用於數據缺失

處理 ………………………255

13.3.2 Pandas處理缺失數據 ……255

13.3.3  Pandas處理數據的多層

索引 ………………………256

13.3.4  Pandas多層索引的索引

與切片 ……………………256

13.3.5  Pandas多層索引的聚合

與統計 ……………………256

13.3.6 Pandas數據的拼接 ………257

13.3.7 Pandas股票數據拼接 ……257

13.3.8  Pandas對不匹配數據的

拼接 ………………………257

13.3.9 Pandas數據歸並 …………258

13.3.10 Pandas左右歸並 ………258

13.3.11 Pandas內歸並與外歸並 …258

13.3.12 Pandas列沖突 …………259

13.3.13  Pandas處理數據歸並

關系 ……………………259

13.3.14 Pandas刪除重復數據 …260

13.3.15  Pandas與NumPy協同處

理數據 …………………260

13.4 Pandas數據分析 …………………260

13.4.1  Pandas_take隨機抽樣

排序 ………………………260

13.4.2 Pandas聚合操作 …………261

13.4.3 Pandas自定義聚合計算 …261

第14章.Matplotlib......262

14.1 Matplotlib簡單繪圖 ……………263

14.2 NumPy整合Matplotlib繪圖 ……263

14.3  NumPy、Pandas、Matplotlib集成

繪圖 ………………………………263

14.4 數據工程師必備DataView ……264

14.5  Pandas中Series與DataFrame繪圖

詳解 ………………………………264

14.6 Matplotlib載入數據 ……………265

14.7 Matplotlib樣式 …………………265

14.8 Matplotlib子圖 …………………265