《Spark程式設計基礎》(Scala版)第八章簡答題答案(自制)

100%Jacker_Channel發表於2024-05-16

8 Spark MLlib

簡答題

T1 與 MapReduce 框架相比,為何 Spark 更適合進行機器學習各演算法的處理?

答:通常情況下,機器學習演算法引數學習的過程都是迭代計算。MapReduce 由於延遲高、磁碟開銷大、無法高效支援迭代計算,不適合高效的實現機器學習演算法;Spark 由於立足於記憶體計算,所以能很好地與機器學習演算法相匹配。

T2 簡述流水線(Pipeline)幾個部件及主要作用,使用 Pipeline 來構建機器學習工作流有什麼好處?🌱

答:

① 流水線部件及其作用:

(1) DataFrame: 即 Spark SQL 中的 DataFrame。與 RDD 資料集相比,它包含了模式(schema)資訊,類似於傳統資料庫中的二維表格;

(2) 轉換器(Transformer): 可以將一個 DataFrame 轉換為另一個 DataFrame 的演算法;

(3) 評估器(Estimator):評估器是對學習演算法或在訓練資料上的訓練方法的概念抽象;

(4) 流水線(PipeLine):流水線將多個工作流階段(轉換器和評估器)連線在一起,形成機器學習的工作流,並獲得結果輸出;

(5) 引數(Parameter):即用來設定轉換器或者評估器的引數。

② 好處:

(1)結構清晰:流水線可以將複雜的機器學習任務分解為多個獨立的部件,使整個工作流更易於理解和管理。

(2)程式碼重用:透過將各個部件模組化,可以在不同的專案中重複使用和共享這些部件,提高開發效率。

T3 基於 RDD 的機器學習 API 和基於 DataFrame 的機器學習 API 有什麼不同點?請思考基於 DataFrame 進行機器學習的優點。🌱

答:

① 兩者不同點:基於 RDD 的機器學習 API 的演算法實現都是基於原始的 RDD;基於 DataFrame 的機器學習 API 除此之外額外有一個機器學習流水線式 API 套件。

② 基於 DataFrame 的優點:基於內部流水線 API 進行機器學習更加靈活,也更符合機器學習的特點,同時也更容易從其他的語言進行遷移。

相關文章