0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Apache Spark 3.2有哪些新特性

數(shù)據(jù)分析與開發(fā) ? 來源:過往記憶大數(shù)據(jù) ? 作者:過往記憶大數(shù)據(jù) ? 2021-11-17 14:09 ? 次閱讀

經(jīng)過七輪投票, Apache Spark 3.2 終于正式發(fā)布了。Apache Spark 3.2 已經(jīng)是 Databricks Runtime 10.0 的一部分,感興趣的同學(xué)可以去試用一下。按照慣例,這個版本應(yīng)該不是穩(wěn)定版,所以建議大家不要在生產(chǎn)環(huán)境中使用。

Spark 的每月 Maven 下載數(shù)量迅速增長到 2000 萬,與去年同期相比,Spark 的月下載量翻了一番。Spark 已成為在單節(jié)點機器或集群上執(zhí)行數(shù)據(jù)工程、數(shù)據(jù)科學(xué)和機器學(xué)習(xí)的最廣泛使用的引擎。

Spark 3.2 繼續(xù)以使 Spark 更加統(tǒng)一、簡單、快速和可擴展為目標(biāo),通過以下特性擴展其范圍:

?在 Apache Spark 上引入 panda API,統(tǒng)一小數(shù)據(jù)API和大數(shù)據(jù)API。

?完成 ANSI SQL 兼容模式,簡化 SQL 工作負(fù)載的遷移。

?自適應(yīng)查詢執(zhí)行產(chǎn)品化完成,以在運行時加速 Spark SQL。

?引入 RocksDB 狀態(tài)存儲以使?fàn)顟B(tài)處理更具可擴展性。

在這篇博文中,我們總結(jié)了一些更高層次的特性和改進。請關(guān)注即將發(fā)布的深入研究這些特性的文章。有關(guān)所有 Spark 組件的主要功能和已解決的 JIRA 的完整列表,請參閱 Apache Spark 3.2.0 release notes

統(tǒng)一小數(shù)據(jù) API 和大數(shù)據(jù) API

Python 是 Spark 上使用最廣泛的語言。為了使 Spark 更具 Python 風(fēng)格,Pandas API 被引入到 Spark,作為 Project Zen 的一部分(另請參閱 Data + AI Summit 2021 會議中的 Project Zen: Making Data Science Easier in PySpark 議題)。現(xiàn)在 pandas 的現(xiàn)有用戶可以通過一行更改來擴展他們的 pandas 應(yīng)用程序。如下圖所示,得益于 Spark 引擎中的復(fù)雜優(yōu)化,單節(jié)點機器 [左] 和多節(jié)點 Spark 集群 [右] 的性能都可以得到極大提升。

同時,Python 用戶還可以無縫利用 Spark 提供的統(tǒng)一分析功能,包括通過 SQL 查詢數(shù)據(jù)、流處理和可擴展機器學(xué)習(xí) (ML)。新的 Pandas API 還提供了由 plotly 后端支持的交互式數(shù)據(jù)可視化。

簡化 SQL 遷移

添加了更多 ANSI SQL 功能(例如,支持 lateral join)。經(jīng)過一年多的發(fā)展,本次發(fā)布的 ANSI SQL 兼容處于 GA 狀態(tài)。為了避免大量破壞行為的更改,默認(rèn)情況下 spark.sql.ansi.enabled 依然是未啟用的。ANSI 模式包括以下主要行為更改:

?當(dāng) SQL 運算符/函數(shù)的輸入無效時,會拋出運行時錯誤,而不是返回為 null (SPARK-33275)。例如,算術(shù)運算中的整數(shù)值溢出錯誤,或?qū)⒆址D(zhuǎn)換為數(shù)字/時間戳類型時的解析錯誤。

?標(biāo)準(zhǔn)化類型強制語法規(guī)則 (SPARK-34246)。新規(guī)則定義了給定數(shù)據(jù)類型的值是否可以基于數(shù)據(jù)類型優(yōu)先級列表隱式提升為另一種數(shù)據(jù)類型,這比默認(rèn)的非 ANSI 模式更直接。

?新的顯式轉(zhuǎn)換語法規(guī)則 (SPARK-33354)。當(dāng) Spark 查詢包含非法類型轉(zhuǎn)換(例如,日期/時間戳類型轉(zhuǎn)換為數(shù)字類型)時,會拋出編譯時錯誤,告知用戶轉(zhuǎn)換無效。

此版本還包括一些尚未完全完成的新計劃。例如,標(biāo)準(zhǔn)化 Spark 中的異常消息(SPARK-33539);引入 ANSI interval type (SPARK-27790) 并提高相關(guān)子查詢的覆蓋范圍 (SPARK-35553)。

在運行時加速 Spark SQL

此版本 (SPARK-33679) 中默認(rèn)啟用自適應(yīng)查詢執(zhí)行 (AQE)。為了提高性能,AQE 可以根據(jù)在運行時收集的準(zhǔn)確統(tǒng)計信息重新優(yōu)化查詢執(zhí)行計劃。在大數(shù)據(jù)中,維護和預(yù)先收集統(tǒng)計數(shù)據(jù)的成本很高。無論優(yōu)化器有多先進,缺乏準(zhǔn)確的統(tǒng)計信息通常會導(dǎo)致計劃效率低下。在這個版本中,AQE 與所有現(xiàn)有的查詢優(yōu)化技術(shù)(例如,動態(tài)分區(qū)修剪,Dynamic Partition Pruning)完全兼容,以重新優(yōu)化 JOIN 策略、傾斜 JOIN 和 shuffle分區(qū)合并。

小數(shù)據(jù)和大數(shù)據(jù)都應(yīng)該在統(tǒng)一的數(shù)據(jù)分析系統(tǒng)中以高效的方式處理。短查詢性能也變得至關(guān)重要。當(dāng)處理的數(shù)據(jù)量相當(dāng)小時,在復(fù)雜查詢中編譯 Spark 查詢的開銷非常大。為了進一步降低查詢編譯延遲,Spark 3.2.0刪除了分析器/優(yōu)化器規(guī)則(SPARK-35042、SPARK-35103) 中不必要的查詢計劃遍歷,并加快了新查詢計劃的構(gòu)建 (SPARK-34989)。因此,與 Spark 3.1.2 相比,TPC-DS 查詢的編譯時間減少了 61%。

更可擴展的狀態(tài)處理流

Structured Streaming 中狀態(tài)存儲的默認(rèn)實現(xiàn)是不可伸縮的,因為可以維護的狀態(tài)數(shù)量受執(zhí)行器堆大小的限制。在此版本中,Databricks 為 Spark 社區(qū)基于 RocksDB 的狀態(tài)存儲實現(xiàn)做出了貢獻,該實現(xiàn)已在 Databricks 生產(chǎn)中使用了四年多。這種狀態(tài)存儲可以通過對鍵進行排序來避免完全掃描,并在不依賴于執(zhí)行器堆大小的情況下從磁盤提供數(shù)據(jù)。

此外,狀態(tài)存儲 API 還包含用于前綴匹配掃描 (SPARK-35861) 的 API,以有效支持基于事件時間的會話 (SPARK-10816),允許用戶在 eventTime 上對會話窗口進行聚合。更多細(xì)節(jié),請閱讀 Native support of session window in Apache Spark’s Structured Streaming 博文。

Spark 3.2 的其他更新

除了上面這些新功能外,這個版本還關(guān)注可用性、穩(wěn)定性和功能加強,解決了大約 1700 個 JIRA tickets。這是 200 多名貢獻者貢獻的結(jié)果,包括個人和公司,如 Databricks,蘋果,Linkedin, Facebook,微軟,英特爾,阿里巴巴,英偉達,Netflix, Adobe 等。我們在這篇博文中重點介紹了 Spark 中的許多關(guān)鍵 SQL、Python 和流數(shù)據(jù)改進,但 3.2 里程碑中還有許多其他功能,包括代碼生成覆蓋率的改進和連接器的增強,您可以在版本中了解更多信息。

開始使用 Spark 3.2

如果您想在 Databricks Runtime 10.0 中試用 Apache Spark 3.2,請注冊 Databricks 社區(qū)版或 Databricks 試用版,這兩者都是免費的,并在幾分鐘內(nèi)就可以使用。如果你想自己搭建的話,可以到 這里 下載。

本文翻譯自 《Introducing Apache Spark 3.2》:https://databricks.com/blog/2021/10/19/introducing-apache-spark-3-2.html

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7035

    瀏覽量

    89045
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1501

    瀏覽量

    62034

原文標(biāo)題:Apache Spark 3.2 正式發(fā)布,新特性詳解

文章出處:【微信號:DBDevs,微信公眾號:數(shù)據(jù)分析與開發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    用Ollama輕松搞定Llama 3.2 Vision模型本地部署

    Ollama的安裝。 一,Llama3.2 Vision簡介 Llama 3.2 Vision是一個多模態(tài)大型語言模型(LLMs)的集合,它包括預(yù)訓(xùn)練和指令調(diào)整的圖像推理生成模型,兩種參數(shù)規(guī)模
    的頭像 發(fā)表于 11-23 17:22 ?1078次閱讀
    用Ollama輕松搞定Llama <b class='flag-5'>3.2</b> Vision模型本地部署

    @視覺工程師丨15分鐘上手《AIDI3.2腳本開發(fā)教程》視頻,請查收!

    平臺軟件的實際應(yīng)用,阿丘科技針對AIDI3.2版的功能特性,推出全新系列課——《AIDI3.2腳本開發(fā)教程》視頻!該教程視頻由阿丘科技算法總監(jiān)吳雨培主講,共分為上下
    的頭像 發(fā)表于 11-09 01:06 ?247次閱讀
    @視覺工程師丨15分鐘上手《AIDI<b class='flag-5'>3.2</b>腳本開發(fā)教程》視頻,請查收!

    USB 3.1和USB 3.2哪些區(qū)別

    USB由于標(biāo)準(zhǔn)眾多,即便是之前已經(jīng)確定的,隨著新一代的推出,標(biāo)準(zhǔn)又出現(xiàn)了新的變化。本期我們將單獨拿出USB 3.1和USB 3.2,它們外觀基本相似,但是在參數(shù)對比上有些區(qū)別,具體不同一起往下看。
    的頭像 發(fā)表于 09-09 14:59 ?1820次閱讀
    USB 3.1和USB <b class='flag-5'>3.2</b><b class='flag-5'>有</b>哪些區(qū)別

    spark為什么比mapreduce快?

    spark為什么比mapreduce快? 首先澄清幾個誤區(qū): 1:兩者都是基于內(nèi)存計算的,任何計算框架都肯定是基于內(nèi)存的,所以網(wǎng)上說的spark是基于內(nèi)存計算所以快,顯然是錯誤的 2;DAG計算模型
    的頭像 發(fā)表于 09-06 09:45 ?270次閱讀

    spark運行的基本流程

    前言: 由于最近對spark的運行流程非常感興趣,所以閱讀了《Spark大數(shù)據(jù)處理:技術(shù)、應(yīng)用與性能優(yōu)化》一書。通過這本書的學(xué)習(xí),了解了spark的核心技術(shù)、實際應(yīng)用場景以及性能優(yōu)化的方法。本文旨在
    的頭像 發(fā)表于 07-02 10:31 ?411次閱讀
    <b class='flag-5'>spark</b>運行的基本流程

    Spark基于DPU的Native引擎算子卸載方案

    1.背景介紹 Apache Spark(以下簡稱Spark)是一個開源的分布式計算框架,由UC Berkeley AMP Lab開發(fā),可用于批處理、交互式查詢(Spark SQL)、實
    的頭像 發(fā)表于 06-28 17:12 ?605次閱讀
    <b class='flag-5'>Spark</b>基于DPU的Native引擎算子卸載方案

    電感科普篇:電感的特性哪些?

    電感科普篇:電感的特性哪些?
    的頭像 發(fā)表于 06-16 10:31 ?1157次閱讀

    云服務(wù)器apache如何配置解析php文件?

    在云服務(wù)器上配置Apache以解析PHP文件通常需要以下步驟: 1、安裝PHP:首先確保在服務(wù)器上安裝了PHP。你可以使用包管理工具(如apt、yum等)來安裝PHP。例如,在Ubuntu上,你可以
    的頭像 發(fā)表于 04-22 17:27 ?1019次閱讀

    如何利用DPU加速Spark大數(shù)據(jù)處理? | 總結(jié)篇

    SSD速度通過NVMe接口得到了大幅提升,并且網(wǎng)絡(luò)傳輸速率也進入了新的高度,但CPU主頻發(fā)展并未保持同等步調(diào),3GHz左右的核心頻率已成為常態(tài)。 在當(dāng)前背景下Apache Spark等大數(shù)據(jù)處理工具中,盡管存儲和網(wǎng)絡(luò)性能的提升極大地減少了數(shù)據(jù)讀取和傳輸?shù)臅r間消耗,但
    的頭像 發(fā)表于 04-02 13:45 ?1059次閱讀
    如何利用DPU加速<b class='flag-5'>Spark</b>大數(shù)據(jù)處理? | 總結(jié)篇

    Spark基于DPU Snappy壓縮算法的異構(gòu)加速方案

    一、總體介紹 1.1 背景介紹 Apache Spark是專為大規(guī)模數(shù)據(jù)計算而設(shè)計的快速通用的計算引擎,是一種與 Hadoop 相似的開源集群計算環(huán)境,但是兩者之間還存在一些不同之處,這些不同之處使
    的頭像 發(fā)表于 03-26 17:06 ?809次閱讀
    <b class='flag-5'>Spark</b>基于DPU Snappy壓縮算法的異構(gòu)加速方案

    RDMA技術(shù)在Apache Spark中的應(yīng)用

    背景介紹 在當(dāng)今數(shù)據(jù)驅(qū)動的時代,Apache?Spark已經(jīng)成為了處理大規(guī)模數(shù)據(jù)集的首選框架。作為一個開源的分布式計算系統(tǒng),Spark因其高效的大數(shù)據(jù)處理能力而在各行各業(yè)中廣受歡迎。無論是金融服務(wù)
    的頭像 發(fā)表于 03-25 18:13 ?1542次閱讀
    RDMA技術(shù)在<b class='flag-5'>Apache</b> <b class='flag-5'>Spark</b>中的應(yīng)用

    基于DPU和HADOS-RACE加速Spark 3.x

    背景簡介 Apache Spark(下文簡稱Spark)是一種開源集群計算引擎,支持批/流計算、SQL分析、機器學(xué)習(xí)、圖計算等計算范式,以其強大的容錯能力、可擴展性、函數(shù)式API、多語言支持(SQL
    的頭像 發(fā)表于 03-25 18:12 ?1367次閱讀
    基于DPU和HADOS-RACE加速<b class='flag-5'>Spark</b> 3.x

    Apache服務(wù)器和Nginx服務(wù)器

    Apache和Nginx都是常見的開源Web服務(wù)器軟件,它們用于處理HTTP請求并提供網(wǎng)站和應(yīng)用程序的服務(wù)。下面是對Apache和Nginx的一些基本特點的比較: 一、Apache HTTP
    的頭像 發(fā)表于 01-22 16:48 ?565次閱讀

    Apache Doris聚合函數(shù)源碼解析

    筆者最近由于工作需要開始調(diào)研 Apache Doris,通過閱讀聚合函數(shù)代碼切入 Apache Doris 內(nèi)核,同時也秉承著開源的精神,開發(fā)了 array_agg 函數(shù)并貢獻給社區(qū)。筆者通過這篇文章記錄下對源碼的一些理解,同時也方便后面的新人更快速地上手源碼開發(fā)。
    的頭像 發(fā)表于 01-16 09:52 ?1026次閱讀
    <b class='flag-5'>Apache</b> Doris聚合函數(shù)源碼解析

    什么是Apache日志?Apache日志分析工具介紹

    Apache Web 服務(wù)器在企業(yè)中廣泛用于托管其網(wǎng)站和 Web 應(yīng)用程序,Apache 服務(wù)器生成的原始日志提供有關(guān) Apache 服務(wù)器托管的網(wǎng)站如何處理用戶請求以及訪問您的網(wǎng)站時經(jīng)常遇到的錯誤的重要信息。
    的頭像 發(fā)表于 01-04 10:09 ?837次閱讀