千鋒教育-做有情懷、有良心、有品質的職業教育機構

                    手機站
                    千鋒教育

                    千鋒學習站 | 隨時隨地免費學

                    千鋒教育

                    掃一掃進入千鋒手機站

                    領取全套視頻
                    千鋒教育

                    關注千鋒學習站小程序
                    隨時隨地免費學習課程

                    【熱點話題】 零基礎學IT IT學習教程 IT學習筆記 IT技術干貨 IT培訓機構 IT應聘面試 IT職場就業 Java培訓機構哪些好
                    當前位置:首頁  >  關于學院  >  技術干貨  > Spark SQL 結構化數據處理流程及原理是什么?

                    Spark SQL 結構化數據處理流程及原理是什么?

                    來源:千鋒教育
                    發布人:qyf
                    時間: 2022-09-05 18:09:49 1662372589

                      SparkSQL 結構化數據處理流程及原理是什么?Spark SQL 可以使用現有的Hive元存儲、SerDes 和 UDF。它可以使用 JDBC/ODBC 連接到現有的 BI 工具。有了 Spark SQL,用戶可以編寫 SQL 風格的查詢。

                      Spark SQL 是 Spark 生態系統中處理結構化格式數據的模塊。它在內部使用 Spark Core API 進行處理,但對用戶的使用進行了抽象。這篇文章深入淺出地告訴你 Spark SQL 3.x 的新內容。

                      這對于精通結構化查詢語言或 SQL 的廣大用戶群體來說,基本上是很有幫助的。用戶也將能夠在結構化數據上編寫交互式和臨時性的查詢。Spark SQL 彌補了彈性分布式數據集RDD和關系表之間的差距。RDD 是 Spark 的基本數據結構。它將數據作為分布式對象存儲在適合并行處理的節點集群中。RDD 很適合底層處理,但在運行時很難調試,程序員不能自動推斷模式schema。另外,RDD 沒有內置的優化功能。Spark SQL 提供了數據幀DataFrame和數據集來解決這些問題。

                      Spark SQL 可以使用現有的 Hive 元存儲、SerDes 和 UDF。它可以使用 JDBC/ODBC 連接到現有的 BI 工具。

                      數據源

                      大數據處理通常需要處理不同的文件類型和數據源(關系型和非關系型)的能力。Spark SQL 支持一個統一的數據幀接口來處理不同類型的源,如下所示。

                      文件:

                      CSV

                      Text

                      JSON

                      XML

                      JDBC/ODBC:

                      MySQL

                      Oracle

                      Postgres

                      帶模式的文件:

                      AVRO

                      Parquet

                      Hive 表:

                      Spark SQL 也支持讀寫存儲在 Apache Hive 中的數據。

                      通過數據幀,用戶可以無縫地讀取這些多樣化的數據源,并對其進行轉換/連接。

                      Spark SQL 3.x 的新內容

                      在以前的版本中(Spark 2.x),查詢計劃是基于啟發式規則和成本估算的。從解析到邏輯和物理查詢計劃,最后到優化的過程是連續的。這些版本對轉換和行動的運行時特性幾乎沒有可見性。因此,由于以下原因,查詢計劃是次優的:

                      1、缺失和過時的統計數據

                      2、次優的啟發式方法

                      3、錯誤的成本估計

                      Spark 3.x 通過使用運行時數據來迭代改進查詢計劃和優化,增強了這個過程。前一階段的運行時統計數據被用來優化后續階段的查詢計劃。這里有一個反饋回路,有助于重新規劃和重新優化執行計劃。

                      自適應查詢執行(AQE)

                      查詢被改變為邏輯計劃,最后變成物理計劃。這里的概念是“重新優化”。它利用前一階段的可用數據,為后續階段重新優化。正因為如此,整個查詢的執行要快得多。

                      動態合并“洗牌”分區

                      Spark 在“洗牌shuffle”操作后確定最佳的分區數量。在 AQE 中,Spark 使用默認的分區數,即 200 個。這可以通過配置來啟用。

                      動態切換連接策略

                      廣播哈希是最好的連接操作。如果其中一個數據集很小,Spark 可以動態地切換到廣播連接,而不是在網絡上“洗牌”大量的數據。

                      動態優化傾斜連接

                      如果數據分布不均勻,數據會出現傾斜,會有一些大的分區。這些分區占用了大量的時間。Spark 3.x 通過將大分區分割成多個小分區來進行優化。

                      其他改進措施

                      此外,Spark SQL 3.x還支持以下內容。

                      動態分區修剪

                      3.x 將只讀取基于其中一個表的值的相關分區。這消除了解析大表的需要。

                      連接提示

                      如果用戶對數據有了解,這允許用戶指定要使用的連接策略。這增強了查詢的執行過程。

                      兼容 ANSI SQL

                      在兼容 Hive 的早期版本的 Spark 中,我們可以在查詢中使用某些關鍵詞,這樣做是完全可行的。然而,這在 Spark SQL 3 中是不允許的,因為它有完整的 ANSI SQL 支持。例如,“將字符串轉換為整數”會在運行時產生異常。它還支持保留關鍵字。

                      較新的 Hadoop、Java 和 Scala 版本

                      從 Spark 3.0 開始,支持 Java 11 和 Scala 2.12。 Java 11 具有更好的原生協調和垃圾校正,從而帶來更好的性能。 Scala 2.12 利用了 Java 8 的新特性,優于 2.11。

                      Spark 3.x 提供了這些現成的有用功能,而無需開發人員操心。這將顯著提高 Spark 的整體性能。

                      更多關于大數據培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。

                    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

                    10年以上業內強師集結,手把手帶你蛻變精英

                    請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通

                    免費領取

                    今日已有369人領取成功

                    劉同學 138****2860 剛剛成功領取
                    王同學 131****2015 剛剛成功領取
                    張同學 133****4652 剛剛成功領取
                    李同學 135****8607 剛剛成功領取
                    楊同學 132****5667 剛剛成功領取
                    岳同學 134****6652 剛剛成功領取
                    梁同學 157****2950 剛剛成功領取
                    劉同學 189****1015 剛剛成功領取
                    張同學 155****4678 剛剛成功領取
                    鄒同學 139****2907 剛剛成功領取
                    董同學 138****2867 剛剛成功領取
                    周同學 136****3602 剛剛成功領取

                    推薦閱讀

                    最新文章

                    開班信息
                    北京校區
                    • 北京校區
                    • 大連校區
                    • 廣州校區
                    • 成都校區
                    • 杭州校區
                    • 長沙校區
                    • 合肥校區
                    • 南京校區
                    • 上海校區
                    • 深圳校區
                    • 武漢校區
                    • 鄭州校區
                    • 西安校區
                    • 青島校區
                    • 重慶校區
                    • 太原校區
                    • 沈陽校區

                    成·人免费午夜在线观看