Offer来敲门大数据开发面试笔试精讲在线真题实训视频版

Offer来敲门大数据开发面试笔试精讲在线真题实训视频版"

作者:郑萌
ISBN:9787302607526
定价:¥89
字数:千字
页数:
出版时间:2022.08.01
开本:
版次:1-1
装帧:
出版社:清华大学出版社
简介

《Offer来敲门 大数据开发面试笔试精讲 在线真题实训视频版》围绕大数据开发的相关技术,以大数据开发的基本要求为纲,以企业在笔试和面试中的试题为核心, 从企业考核的角度组织内容,并对这些试题加上了详细的分析说明,以考促学。《Offer来敲门 大数据开发面试笔试精讲 在线真题实训视频版》既包括 Java、Python 等基础编程知识,又涵盖 Hadoop、Hive/HBase、Tushare、NumPy、Pandas、Matplotlib 等大数据开发关的技术。全书分为 4 篇 14 章,第 1 篇为 Java 编程,第 2 篇为 Python 编程,第 3 篇为大数据开发,第 4 篇为数据分析与可视化。本书还配有大量的视频讲解,方便读者进一步学习。

《Offer来敲门 大数据开发面试笔试精讲 在线真题实训视频版》适合读者在学习过程中进行自测,也适合读者在应聘之前进行有针对性的复习。本书对大数据相关的重要知识点都有详细的讲解,并配备了完整的从知识到实践的学习视频,也适合作为系统学习的材料。

前言

前.言

Preface

本书的编写目的

目前,大数据和人工智能是IT行业中最热门的两个细分领域,行业的火热也带来了大量的用人需求,相关人员的薪资待遇也鹤立鸡群于所有的开发岗位中。因为大数据开发的相关技术比较新且还在不断发展中,所以对于人才的技能要求也比较高,在招聘中,通常会要求候选人通过比较严格的笔试和面试。

猿圈作为专业的测评机构,自2014年成立以来,已经为大量企业测试了几十万的专业人才,并在此过程中积累了大量的用人需求和测评试题。为了给想进入这个行业的开发人员提供更好的帮助,我们编写了本书,试图从企业招聘的角度为读者提供帮助。

本书结构

本书共分为4篇14章,涵盖了大数据开发从基础到实践的各部分内容,具体结构如下图所示。

本书特色

本书具备以下特色。

1. 专门围绕一类岗位笔试和面试真题编写

这是专门针对大数据开发笔试和面试的真题教材,方便读者了解企业招聘大数据开发人员时的关注重点。

2. 大量来自于企业的笔试和面试真题

本书的试题很多来自于企业招聘时的真题。这些真题反映了企业对大数据开发人员的要求, 读者可以通过本书掌握这些知识和技能。

3. 涵盖面广

本书涵盖从Java、Python等基础开发语言到大数据开发及数据可视化实战的相关技术,涉及的知识点非常广泛和全面。

4. 配套学习视频

本书主要围绕知识点来组织内容。为了让读者更好地掌握相关的内容,尤其是偏向于动手实践的内容,我们给本书配备了300多节课的视频,作为本书的有力补充,读者可扫描本书封底二维码进行观看。

本书配套视频资源使用提示

本书的内容脉络和视频基本一致,但视频不是本书内容的重复,而是对书本内容的补充。本书着重于知识点的讲解,而视频着眼于实践。建议读者在读完一章之后,再查看视频内容,或者反之,先看完一章视频内容后,通过本书中的试题进行自测,并通过试题之后的解释进一步巩固所学知识。

作者

2022年4月

目录

目.录

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

作者简介

编辑推荐

《Offer来敲门 大数据开发面试笔试精讲 在线真题实训视频版》围绕大数据开发的相关技术,以大数据开发的基本要求为纲,以企业在笔试和面试中的试题为核心, 从企业考核的角度组织内容,并对这些试题加上了详细的分析说明,以考促学。《Offer来敲门 大数据开发面试笔试精讲 在线真题实训视频版》既包括 Java、Python 等基础编程知识,又涵盖 Hadoop、Hive/HBase、Tushare、NumPy、Pandas、Matplotlib 等大数据开发关的技术。全书分为 4 篇 14 章,第 1 篇为 Java 编程,第 2 篇为 Python 编程,第 3 篇为大数据开发,第 4 篇为数据分析与可视化。本书还配有大量的视频讲解,方便读者进一步学习。

《Offer来敲门 大数据开发面试笔试精讲 在线真题实训视频版》适合读者在学习过程中进行自测,也适合读者在应聘之前进行有针对性的复习。本书对大数据相关的重要知识点都有详细的讲解,并配备了完整的从知识到实践的学习视频,也适合作为系统学习的材料。

作者寄语

电子资料

www.luweidong.cn

下一个