Spark SQL architecture
Spark SQL Execution Plan
透過 Spark SQL執行計畫對應Spark SQL架構圖說明
|
|
分別說明各階段
|
|
- 對應Unresolved Logical Plan階段
- Project後顯示最終輸出字段的相關訊息
- Join Inner指出有一個Join Inner操作,join條件為((‘a.key = ‘b.key) && (‘a.key > 10))
- SubqueryAlias為參與操作的表
- 此階段尚未對SQL語法進行解析(Unresolved)
|
|
- 對應Logical Plan階段
- 經過Schema Catalog階段產生Logical Plan的輸入,明確得知database與table的資訊
- CatalogRelation指出,參與操作的database與table的訊息,以及包含的欄位,例如a是來自default database中的test table,當中包含key與value欄位
- org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe指出此table使用的序列化與反序列化的演算法
- 此階段已經對SQL語法進行解析,並已知database與table的明確資訊
- 此階段對最終輸出結果(Project)進行類型轉換(cast)
|
|
- 對應Optimized Logical Plan階段
- Filter指出對參與操作的數據過濾,換句話說,就是進行位次下壓,減少處理的數據量,提高性能。
|
|
- 對應Physical Plans階段
- Inner Join經由內部轉換成SortMergeJoin