2022 年超过 15 个 Apache Spark 面试问答
已发表: 2021-01-08任何熟悉 Apache Spark 的人都知道为什么它会成为当今最受欢迎的大数据工具之一——它允许超快速计算。
Spark 支持快速大数据处理这一事实使其受到全球公司的欢迎。 从亚马逊、阿里巴巴、eBay 和雅虎等大公司,到行业中的小公司,Spark 已经获得了大量的追随者。 正因为如此,公司一直在寻找具有 Spark 领域专业知识的熟练大数据专业人员。
对于每个希望获得与大数据 (Spark) 个人资料相关的工作的人,您必须首先成功通过 Spark 面试。 这里有一些东西可以让你更接近你的目标——15 个最常见的 Apache Spark 面试问题!
- 什么是火花?
Spark 是一个允许实时处理的开源集群计算大数据框架。 它是一个通用数据处理引擎,能够处理不同的工作负载,如批处理、交互式、迭代和流式处理。 Spark 执行有助于提高数据处理速度的内存计算。 它可以独立运行,也可以在 Hadoop 上或在云中运行。
- 什么是 RDD?
RDD 或弹性分布式数据集是 Spark 的主要数据结构。 它是 Spark 中的一个基本抽象,以对象格式表示数据输入。 RDD 是一个只读的、不可变的对象集合,其中每个节点都被划分为更小的部分,这些部分可以在集群的不同节点上进行计算,以实现独立的数据处理。
- 区分 Apache Spark 和 Hadoop MapReduce。
Apache Spark 和 Hadoop MapReduce 之间的主要区别在于:

- Spark 更容易编程,不需要任何抽象。 MapReduce 是用 Java 编写的,难以编程。 它需要抽象。
- Spark 有一个交互模式,而 MapReduce 没有它。 但是,像 Pig 和 Hive 这样的工具可以更轻松地使用 MapReduce。
- Spark 允许在同一个集群中进行批处理、流式处理和机器学习。 MapReduce 最适合批处理。
- Spark 可以通过 Spark Streaming 实时修改数据。 MapReduce 中没有这样的实时配置——您只能处理一批存储的数据。
- Spark 通过在内存中缓存部分结果来促进低延迟计算。 这需要更多的内存空间。 相反,MapReduce 是面向磁盘的,允许永久存储。
- 由于 Spark 可以在内存中执行处理任务,因此它处理数据的速度比 MapReduce 快得多。
- 什么是稀疏向量?
稀疏向量由两个并行数组组成,一个用于索引,另一个用于值。 它们用于存储非零条目以节省内存空间。
- Spark 中的分区是什么?
分区用于创建更小的逻辑数据单元,以帮助加快数据处理。 在 Spark 中,一切都是分区的 RDD。 分区以最小的网络流量并行化分布式数据处理,以将数据发送到系统中的各个执行程序。
- 定义转型和行动。
Transformation 和 Action 都是在 RDD 中执行的操作。
当 Transformation 函数应用于一个 RDD 时,它会创建另一个 RDD。 转换的两个示例是 map() 和 filer() - map() 将传递给它的函数应用于 RDD 的每个元素并创建另一个 RDD,filter() 通过从当前 RDD 中选择组件来创建一个新的 RDD,这些组件传递函数参数。 它仅在动作发生时触发。
Action 将数据从 RDD 检索到本地机器。 它通过使用沿袭图将数据加载到原始RDD中来触发执行,执行所有中间转换,并将最终结果返回给Driver程序或将其写入文件系统。
- 什么是谱系图?
在 Spark 中,RDD 相互依赖。 RDD 之间这些依赖关系的图形表示称为沿袭图。 使用来自血统图的信息,可以按需计算每个 RDD——如果丢失了持久性 RDD 的一部分,则可以使用血统图信息恢复丢失的数据。
- SparkCore 的目的是什么?
SparkCore 是 Spark 的基础引擎。 它执行许多重要功能,例如容错、内存管理、作业监控、作业调度以及与存储系统的交互。

- 命名 Spark 生态系统的主要库。
Spark 生态系统中的主要库有:
- Spark Streaming – 用于启用实时数据流。
- Spark MLib- 它是 Spark 的机器学习库,是常用的学习算法,如分类、回归、聚类等。
- Spark SQL – 它通过应用标准可视化或商业智能工具帮助对 Spark 数据执行类似 SQL 的查询。
- Spark GraphX – 它是用于图形处理的 Spark API,用于开发和转换交互式图形。
- 什么是纱线? 是否需要在 YARN 集群的所有节点上安装 Spark?
Yarn 是 Spark 中的一个中央资源管理平台。 它支持跨 Spark 集群交付可扩展的操作。 Spark 是数据处理工具,YARN 是分布式容器管理器。 正如 Hadoop MapReduce 可以在 YARN 上运行一样,Spark 也可以在 YARN 上运行。
不必在 YARN 集群的所有节点上安装 Spark,因为 Spark 可以在 YARN 之上执行——它独立于其安装运行。 它还包括在 YARN 上运行的不同配置,例如 master、queue、deploy-mode、driver-memory、executor-memory 和 executor-cores。
- 什么是催化剂框架?
Catalyst 框架是 Spark SQL 中独有的优化框架。 催化剂框架的主要目的是使 Spark 能够通过添加新的优化来自动转换 SQL 查询以开发更快的处理系统。
- Spark 中有哪些不同类型的集群管理器?
Spark 框架包含三种类型的集群管理器:
- Standalone – 用于配置集群的主管理器。
- Apache Mesos – Spark 的内置通用集群管理器,可以运行 Hadoop MapReduce 和其他应用程序。
- Yarn – 用于处理 Hadoop 中资源管理的集群管理器。
- 什么是工作节点?
工作节点是主节点的“从节点”。 它指的是可以在集群中运行应用程序代码的任何节点。 因此,主节点将工作分配给执行分配任务的工作节点。 工作节点处理存储在其中的数据,然后向主节点报告。

- 什么是 Spark 执行器?
Spark Executor 是一个运行计算并将数据存储在工作节点中的进程。 每次 SparkContext 与集群管理器连接时,它都会在集群内的节点上获取一个 Executor。 这些执行器执行由 SparkContext 分配给它们的最终任务。
- 什么是镶木地板文件?
Parquet 文件是一种列格式文件,它允许 Spark SQL 进行读写操作。 使用 parquet 文件(列格式)有很多优点:
- 列存储格式占用的空间更少。
- 列存储格式可以检查 IO 操作。
- 它允许您轻松访问特定的列。
- 它遵循特定类型的编码并提供更好的汇总数据。
在那里——我们已经让你轻松进入 Spark。 Spark 中的这 15 个基本概念将帮助您开始使用 Spark。
如果您有兴趣了解有关大数据的更多信息,请查看我们的 PG 大数据软件开发专业文凭课程,该课程专为在职专业人士设计,提供 7 多个案例研究和项目,涵盖 14 种编程语言和工具,实用的动手操作研讨会,超过 400 小时的严格学习和顶级公司的就业帮助。
在 upGrad 查看我们的其他软件工程课程。