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

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

作者: 鄭萌
出版社: 清華大學
出版在: 2022-08-01
ISBN-13: 9787302607526
ISBN-10: 7302607524





內容描述


《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




相關書籍

前端程序員面試筆試通關寶典

作者 聚慕課教育研發中心

2022-08-01

程序員面試手冊:概念、編程問題及面試題

作者 納拉辛哈·卡魯曼希

2022-08-01

MySQL 程序員面試筆試寶典

作者 李華榮等 猿媛之家編

2022-08-01