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 查看我們的其他軟件工程課程。