1. 程式人生 > >Spark SQL 程式開發需要注意的要點

Spark SQL 程式開發需要注意的要點

    Spark SQL 程式開發過程中,我們有兩種方式確定 schema,第一種是反射推斷 schema,這種方式下,需要定義樣本類 (case class) 來對應資料的列;第二種方式是通過程式設計方式來確定 schema,這種方式主要是通過 Spark SQL 提供的 StructType 和 StructField 等 API 來程式設計實現,這種方式下不需要定義樣本類

    在程式實現中,我們需要使用以便隱式的把 RDD 轉化成 DataFrame 來操作。
    
    通常來說,我們有兩種方式瞭解 Spark 程式的執行流程。第一種是通過在控制檯觀察輸出日誌,另一種則更直觀,就是通過 Spark Web Console 來觀察 Driver 程式裡各個部分產生的 job 資訊以及 job 裡包含的 stages 資訊。
    需要指出的是,熟練的掌握 Spark SQL/DataFrame 的知識對學習最新的 Spark 機器學習庫 ML Pipeline 至關重要,因為 ML Pipeline 使用 DataFrame 作為資料集來支援多種的資料型別。
    筆者在測試的過程中發現,處理相同的資料集和類似的操作,Spark SQL/DataFrame 比傳統的 RDD 轉換操作具有更好的效能。這是由於 SQL 模組的 Catalyst 對使用者 SQL 做了很好的查詢優化。