成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 Spark SQL 進行結構化數據處理

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

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

有了 Spark SQL,用戶可以編寫 SQL 風格的查詢。這對于精通結構化查詢語言或 SQL 的廣大用戶群體來說,基本上是很有幫助的。用戶也將能夠在結構化數據上編寫交互式和臨時性的查詢。Spark SQL 彌補了彈性分布式數據集resilient distributed data sets(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),查詢計劃是基于啟發式規則和成本估算的。從解析到邏輯和物理查詢計劃,最后到優化的過程是連續的。這些版本對轉換和行動的運行時特性幾乎沒有可見性。因此,由于以下原因,查詢計劃是次優的:

  • 缺失和過時的統計數據
  • 次優的啟發式方法
  • 錯誤的成本估計

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

Figure 1: Query planning

自適應查詢執行(AQE)

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

AQE 可以通過設置 SQL 配置來啟用,如下所示(Spark 3.0 中默認為 false):

spark.conf.set(“spark.sql.adaptive.enabled”,true)

動態合并“洗牌”分區

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

spark.conf.set(“spark.sql.adaptive.coalescePartitions.enabled”,true)

動態切換連接策略

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

動態優化傾斜連接

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

spark.conf.set(“spark.sql.adaptive.skewJoin.enabled”,true)

Figure 2: Performance improvement in Spark 3.x (Source: Databricks)

其他改進措施

此外,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 的整體性能。

責任編輯:未麗燕 來源: Linux中國
相關推薦

2021-12-29 10:51:19

JavaSPL架構

2023-12-05 08:47:30

Pandas數據處理

2018-04-03 14:00:03

結構化數據非結構化數據數據庫

2021-12-12 08:37:18

結構化數據非結構化數據數據

2017-12-06 15:46:31

深度學習結構化數據NLP

2024-05-27 00:32:45

2021-07-08 09:51:18

MaxCompute SQL數據處理

2019-07-13 15:00:17

結構化SQLNOSQL數據庫

2010-06-30 13:49:02

SQL Server數

2022-10-19 08:00:00

2009-02-16 15:41:04

非結構化數據SQL Server SQL Server

2024-10-08 10:57:04

2021-07-20 15:37:37

數據開發大數據Spark

2010-07-07 10:02:46

SQL Server數

2024-11-14 12:00:00

Python開源大數據

2023-12-25 15:00:18

結構化布線光纖

2009-02-02 09:05:08

GoogleWebWeb結構化

2017-05-16 21:31:03

結構化數據新模式

2016-10-19 09:41:31

SQL查詢語言關系型

2023-12-13 10:22:04

APISpark數據
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产三级在线观看播放 | 九九九国产 | 亚洲一区二区三区高清 | 日韩精品免费播放 | 日韩一区二区三区在线 | 欧美黄在线观看 | 一区二区三区视频在线观看 | 国产精品一区二区久久精品爱微奶 | 久久久精品一区二区三区 | 犬夜叉在线观看 | 久久久久久免费看 | 日韩at| 日本一二三区高清 | 亚洲视频在线看 | 伊人网在线看 | 亚洲欧美中文日韩在线v日本 | 成人午夜精品 | 91久久久精品国产一区二区蜜臀 | 国产在线a| 国产精品国产精品 | 国产精品亚洲精品日韩已方 | 麻豆毛片| 精品欧美乱码久久久久久 | 一区二区影院 | 97超碰人人| av男人的天堂av | 天天射天天操天天干 | 一级毛片在线播放 | 91精品国产综合久久小仙女图片 | 欧美日韩在线观看视频 | 九九久久精品 | 国产精品视频免费观看 | 日韩插插| 久久久妇女国产精品影视 | 久久久久久成人网 | 91成人精品 | 国产精品自产拍在线观看蜜 | 日韩精品一区二区三区中文在线 | 欧美日韩不卡 | 国产欧美精品 | 精品久久久网站 |