1. 程式人生 > >Spark Release 2.3.0 版本釋出新特性和優化

Spark Release 2.3.0 版本釋出新特性和優化

Apache Spark 2.3.0是2.x系列中的第四個版本。此版本增加了對結構化流中的連續處理以及全新的Kubernetes Scheduler後端的支援。其他主要更新包括新的DataSource和結構化Streaming v2 API,以及一些PySpark效能增強。此外,此版本繼續關注可用性,穩定性和拋光,同時解決了大約1400問題。

要下載Apache Spark 2.3.0,請訪問下載頁面。你可以諮詢JIRA的詳細變化。我們在這裡策劃了一個高層次的變更清單,按主要模組分組。

Core,PySpark和Spark SQL

  • 主要特點
    • Spark on Kubernetes:[ SPARK-18278
       ]一個新的kubernetes排程程式後端,支援將原生作業提交到由kubernetes管理的叢集。請注意,此支援目前是實驗性的,並且應該預期配置,容器影象和入口點的行為變化。
    • Vectorized ORC Reader:[ SPARK-16060 ]增加對新ORC讀取器的支援,通過向量化(2-5x)顯著提高ORC掃描吞吐量。為了啟用讀者,使用者可以設定spark.sql.orc.impl為native。
    • Spark historyServer V2:[ SPARK-18085 ]一個新的Spark歷史記錄伺服器(SHS)後端,通過更高效的事件儲存機制為大規模應用程式提供更好的可伸縮性。
    • Datasource API V2:[ SPARK-15689 ] [ SPARK-22386 ]用於在Spark中插入新資料來源的實驗性API。新的API試圖解決V1 API的幾個限制,旨在促進開發高效能,易於維護和可擴充套件的外部資料來源。請注意,此API仍處於積極的發展階段,應該預料會發生重大變化。
    • PySpark效能增強:[ SPARK-22216 ] [ SPARK-21187 ]通過快速資料序列化和向量化執行,python效能和互操作性顯著提高。

Structured Streaming

  • 連續處理
    • 一種新的執行引擎,可以通過更改僅一行使用者程式碼,以亞毫秒端到端延遲執行流式查詢。要了解更多資訊,請參閱程式設計指南。
  • 流 - 流聯接
    • 能夠加入兩個資料流,緩衝行直到匹配的元組到達另一個流。可以使用謂詞對事件時間列來限制需要保留的狀態量。
  • 流媒體API V2
    • 用於插入新源和接收器的實驗性API,適用於批處理,微批處理和連續執行。請注意,此API仍處於積極的發展階段,應該有預期的改變。

MLlib

  • 強調
    • ML預測現在適用於結構化流式處理,使用更新的API。下面的細節。
  • 新/改進的API
    • SPARK-21866 ]:將影象讀入DataFrame(Scala / Java / Python)的內建支援
    • SPARK-19634 ]:DataFrame用於描述向量列(Scala / Java)的摘要統計資訊
    • SPARK-14516 ]:ClusteringEvaluator用於調整聚類演算法,支援餘弦剪影和平方歐幾里德輪廓度量(Scala / Java / Python)
    • SPARK-3181 ]:具有Huber損失的強大線性迴歸(Scala / Java / Python)
    • SPARK-13​​969 ]:FeatureHasher變壓器(Scala / Java / Python)
    • 多個特徵轉換器的多列支援:
  • 新功能
    • SPARK-21087 ]:CrossValidator並且TrainValidationSplit可以在裝配時收集所有模型(Scala / Java)。這允許您檢查或儲存所有擬合的模型。
    • SPARK-19357 ]:元演算法CrossValidator,TrainValidationSplit, OneVsRest支援並行性引數,用於並行擬合多個子模型Spark作業
    • SPARK-17139 ]:多項邏輯迴歸模型總結(Scala / Java / Python)
    • SPARK-20199 ]:將featureSubsetStrategyParam 新增到GBTClassifier和GBTRegressor。使用這個子樣本特徵可以顯著提高訓練速度; 這個選項一直是一個關鍵的力量xgboost。
  • 其他顯著變化
    • SPARK-22156 ] Word2Vec通過num迭代固定學習速率縮放。新的學習速率被設定為匹配原始的Word2VecC程式碼,並應該從培訓中獲得更好的結果。
    • SPARK-22289 ]新增JSON對矩陣引數的支援(修正了LogisticRegressionModel使用係數邊界時ML永續性的錯誤。)
    • SPARK-22700 ] Bucketizer.transform不正確地刪除包含的行NaN。當Param handleInvalid設定為“跳過”時,Bucketizer如果另一個(不相關的)列有NaN值,則會在輸入列中刪除具有有效值的行。
    • SPARK-22446 ]催化劑優化器StringIndexerModel在handleInvalid被設定為“錯誤”時有時會引發不正確的“不可見標籤”異常。由於謂詞下推,過濾資料可能會發生這種情況,即使已經過濾了無效行來自輸入資料集。
    • SPARK-21681 ]修復了多項邏輯迴歸中的邊緣病例錯誤,當某些特徵具有零方差時導致係數不正確。
    • 主要優化:
      • SPARK-22707 ]降低了記憶體消耗CrossValidator
      • SPARK-22949 ]降低了記憶體消耗TrainValidationSplit
      • SPARK-21690 ] Imputer應該對資料進行一次遍歷
      • SPARK-14371 ] OnlineLDAOptimizer避免為每個小批量的驅動程式收集統計資料。

SparkR

SparkR在2.3.0版本中的主要重點是提高UDF的穩定性並在現有的API上新增幾個新的SparkR包裝器:

GraphX

  • 優化
    • SPARK-5484 ] Pregel現在定期檢查點以避免StackOverflowErrors

Deprecations

  • Python
    • SPARK-23122 ]棄用PySpark register*中SQLContext和UDF中的UDFCatalog
  • MLlib
    • SPARK-13​​030 ] OneHotEncoder已被棄用,將在3.0中刪除。它已被新的取代OneHotEncoderEstimator。請注意,OneHotEncoderEstimator它將被重新命名為OneHotEncoder3.0(但OneHotEncoderEstimator將作為別名保留)。

Changes of behavior

  • SparkSQL
    • SPARK-22036 ]:預設情況下,小數點之間的算術運算返回一個四捨五入的值,如果無法確切表示(而不是NULL在先前版本中返回)
    • SPARK-22937 ]:當所有輸入都是二進位制時,SQL elt()以二進位制形式返回輸出。否則,它以字串形式返回。在之前的版本中,儘管有輸入型別,它總是以字串的形式返回。
    • SPARK-22895 ]:在第一個非確定性謂詞之後的Join / Filter的確定性謂詞如果可能的話,也會向下/通過子操作符。在之前的版本中,這些過濾器不適用於謂詞下推。
    • SPARK-22771 ]:當所有輸入都是二進位制時,functions.concat()將輸出作為二進位制返回。否則,它以字串形式返回。在之前的版本中,儘管有輸入型別,它總是以字串的形式返回。
    • SPARK-22489 ]:當任何一個連線端都可以廣播時,我們更喜歡廣播在廣播提示中明確指定的表。
    • SPARK-22165 ]:分割槽列推斷先前為不同的推斷型別找到了不正確的通用型別,例如,以前它以double型別作為double型別和date型別的通用型別結束。現在它找到了這種衝突的正確型別。有關詳細資訊,請參閱遷移指南
    • SPARK-22100 ]:此percentile_approx功能以前接受過numeric型別輸入和輸出double型別的結果。現在它支援date型別,timestamp型別和numeric型別作為輸入型別。結果型別也會更改為與輸入型別相同,這對於百分位數更合理。
    • SPARK-21610 ]:當被引用列僅包含內部損壞記錄列(_corrupt_record預設命名)時,不允許來自原始JSON / CSV檔案的查詢。相反,您可以快取或儲存解析的結果,然後傳送相同的查詢。
    • SPARK-23421 ]:自Spark 2.2.1和2.3.0以來,當資料來源表的資料列中存在分割槽模式和資料模式時,總是在執行時推斷模式。推斷的模式沒有分割槽列。讀取表格時,Spark尊重這些重疊列的分割槽值,而不是儲存在資料來源檔案中的值。在2.2.0和2.1.x版本中,推斷的模式是分割槽的,但表的資料對使用者是不可見的(即結果集為空)。
  • PySpark
    • SPARK-19732 ]:na.fill()或者fillna也接受布林值並用布林值替換空值。在之前的Spark版本中,PySpark忽略它並返回原始資料集/資料幀。
    • SPARK-22395 ]:0.19.2使用Pandas相關功能(例如toPandas,createDataFrame來自Pandas DataFrame等)需要Pandas 或upper 。
    • SPARK-22395 ]:Pandas相關功能的時間戳值行為已更改為尊重會話時區,在先前的版本中會忽略該時區。
    • SPARK-23328 ]:當不是字典時,df.replace不允許省略。以前,在其他情況下可以省略,預設情況下,這是違反直覺和容易出錯的。valueto_replacevalueNone
  • MLlib
    • 打破API變更:邏輯迴歸模型摘要的類和特徵層次結構已更改為更乾淨,並更好地適應新增多類彙總。對於將使用者程式碼轉換LogisticRegressionTrainingSummary為a的使用者程式碼,這是一次重大更改BinaryLogisticRegressionTrainingSummary。使用者應該改用這個model.binarySummary方法。有關更多詳細資訊,請參見[ SPARK-17139 ](請注意,這是一個@ExperimentalAPI)。這不會影響Python摘要方法,該方法對於多項和二進位制的情況都能正常工作。
    • SPARK-21806 ]:BinaryClassificationMetrics.pr()第一點(0.01.0)具有誤導性,並已被(0.0,p)代替,其中精度p與最低召回點相匹配。
    • SPARK-16957 ]:決策樹現在在選擇拆分值時使用加權中點。這可能會改變模型訓練的結果。
    • SPARK-14657 ]:RFormula現在,沒有攔截,在編碼字串術語時輸出引用類別,以匹配原生R行為。這可能會改變模型訓練的結果。
    • SPARK-21027 ]:預設使用的並行OneVsRest度現在設定為1(即序列)。在2.2及更早版本中,並行度被設定為Scala中預設的執行緒池大小。這可能會改變效能。
    • SPARK-21523 ]:升級微風0.13.2。這包括強烈的Wolfe線搜尋L-BFGS的重要錯誤修復。
    • SPARK-15526 ]:JPMML依賴關係現在用陰影表示。
    • 有關修復錯誤導致的行為更改,請參閱“錯誤修復”部分。

Known Issues

  •  [ SPARK-23523 ] [SQL]由規則導致的結果不正確OptimizeMetadataOnlyQuery

相關推薦

Spark Release 2.3.0 版本釋出特性優化

Apache Spark 2.3.0是2.x系列中的第四個版本。此版本增加了對結構化流中的連續處理以及全新的Kubernetes Scheduler後端的支援。其他主要更新包括新的DataSource和結構化Streaming v2 API,以及一些PySpark效能增強。此

Spring Boot 2.3.0正式釋出:優雅停機、配置檔案位置萬用字元特性一覽

> 當大潮退去,才知道誰在裸泳。。關注公眾號【**BAT的烏托邦**】開啟專欄式學習,拒絕淺嘗輒止。本文 [https://www.yourbatman.cn](https://www.yourbatman.cn) 已收錄,裡面一併有Spring技術棧、MyBatis、中介軟體等小而美的專欄供以學習哦。 [

【轉載】Django 2.0版本特性

2017年12月2日,Django官方釋出了2.0版本,成為多年來的第一次大版本提升,那麼2.0對廣大Django使用者有哪些變化和需要注意的地方呢? 一、Python相容性 Django 2.0支援Python3.4、3.5和3.6。Django官方強烈推薦每個系

PhalApi 2.4.0 版本釋出,PHP 開源介面框架

PhalApi 2.4.0 [主要更新] 1、線上文件,樣式優化,並新增介面搜尋功能,方便查詢 [輔助更新] 1、新增CORS跨域擴充套件,由@吞吞小猴 提供 2、2.x文件完善,豐富資料庫操作的說明及示例 [BUG修復] 1、分表策略下預設預設表名再次獲取時,因快取擊中而最終出現表

Html2excel 1.3.0 版本釋出,重構 POI 寫模組

   Html2excel,是一個以Html table 模板為媒介來生成任意複雜佈局的Excel的工具包,支援.xls、.xlsx格式,支援對背景色、邊框、字型等進行個性化設定,支援合併單元格。 本次釋出更新點如下: 對DefaultExcelBuilder進行增強,支援

'com.android.tools.build:gradle:2.3.0' 版本報錯解決Plugin used. Try disabling Instant Run (or updating. ..

今天下載路由框架原始碼進行閱讀的時候,gradle 報錯了,“Plugin used. Try disabling Instant Run (or updating either the IDE or the Gradle plugin to the latest vers

solr-5.4.1 mmseg4j-2.3.0版本的配置

配置solr伺服器   1.登入solr的官方網站下載最新版本,目前是5.5.0。http://lucene.apache.org/solr/downloads.html  2.linux下載tgz型別,windows系統下載solr-5.5.0.zip  3.解壓

CAP 3.0 版本釋出通告

前言 大家好,我們很高興宣佈 CAP 釋出了 3.0 版本正式版。 自從上次 CAP 2.6 版本釋出 以來,已經過去了幾個月的時間,關注的朋友可能知道,在這幾個月的時間裡,也釋出了幾個預覽版的 3.0 版本的NuGet包。 3.0 是一個主要版本,在這個版本中我們對程式碼進行了大量重構,重構的目的是為了讓程

技術大牛論道HBase 3.0 可能的特性

去除 進一步 調整 還需 備份和恢復 blog 部署 filter 技術分享 摘要: 經過了四年的發展歷程,HBase 2.0終於發布上線,其增加了很多的新特性,能夠更好地適應更多的場景,但是也有一些原本計劃的特性並沒有隨之上線。在未來的HBase 3.0版本中,又有哪些特

net core 3.0 之Grpc特性小試牛刀

    相信微服務大傢伙都有聽說和知道,好處弊端咱也不多說了,Grpc算是一個比較全面的微服務框架,也得到微軟的支援   總結下來就是,跨平臺,可靠,通訊快,擴充套件性強,網路消耗小,模板多語言通用       光說好處,沒有弊端嗎,自然是有的   最大的問題可能就是無法直接通過瀏覽器呼叫

php8.0正式版特性效能優化學習

## 前言 > PHP團隊宣佈PHP8正式GA(連結)。php的發展又開啟了新的篇章,PHP8.0.0版本引入了一些重大變更及許多新特性和效能優化機制.火速學習下~ ## JIT(Just in Time Compiler) 即時編譯器 `JIT` 是一種編譯器策略,它將程式碼表述為一種中間狀態,在執行時將

Spark Release 2.2.0 最新版本釋出Spark 2.2.0Spark 2.x中第一個在生產環境可以使用的版本,對於Spark具有里程碑意義

第2章 Spark 2.X技術及原理 Apache官方網站於2017年7月11日釋出了Spark Release 2.2.0版本, Apache Spark 2.2.0版本是Spark 2.x系列上的第三個版本。Spark 2.2.0是Spark 2.x中第一個在生產環境可以

Nacos 釋出0.3.0版本,迄今為止最好看的版本

摘要: 近日,Nacos 0.3.0 正式釋出,該版本旨在增強對服務列表,健康狀態管理,服務治理,分散式配置管理等方面的管控能力,以便進一步幫助使用者降低管理微服務應用架構的成本,在第一版的 UI 功能規劃中,將提供包括下列基本功能: 1、服務管理 服務列表及服務健康狀態展示 服務元資料儲存及編輯 服務流量權

OWASP ZAP 2.7.0 版本全球釋出|棉花哥的部落格

0x01OWASP ZAP OWASP Zed Attack Proxy (ZAP)工具是世界上最受歡迎的免費安全工具之一。ZAP可以幫助安全測試人員在開發和測試應用程式過程中,自動發現 Web應用程式中的安全漏洞。另外,它也是一款提供給具備豐富經驗的滲透測試人員進行人工安全測試的優秀工具。

Apache CouchDB 2.3.0 釋出,文件資料庫

   Apache CouchDB 2.3.0 已釋出,Apache CouchDB 是一個面向文件的資料庫管理系統。它提供以 JSON 作為資料格式的 REST 介面來對其進行操作,並可以通過檢視來操縱文件的組織和呈現。CouchDB 是 Apache 基金會的頂級開源專案。

Telegram 5.0版本釋出:增加的設計元素、更多的功能

   Telegram 是四年內擁有超過 2 億活躍使用者的訊息應用程式,剛剛釋出了一項重大更新,為 Android 和 iOS 平臺帶來了許多新功能。如果您是 Apple 使用者,您會很高興知道開發人員實施了大約 400 項小改進。 另一方面,Android 端正在獲得一種新

IBM Notes 9.0.1FP10版本釋出的補丁程式IF5

大家好,才是真的好。我們說目前IBM Notes和Domino產品主要支援9.0.x和10.0版本,其中V10版本是近期的重點,但9.0.x也在繼續不斷在更新,畢竟使用9.0.x的企業使用者還是大多數,而且9.0.x的技術支援生命週期還遠未結束。 就在前天,我們

快速開發平臺 MRoot 2.0.1 釋出,Bug 修復優化版本

   MRoot是基於Spring Boot2編寫的快速開發平臺 【修復】 1.登入後首頁條數沒有資料 2.Shiro許可權匹配 3.使用Spring Boot內嵌的服務容器啟動專案時,無法初始化 【調整】 1.許可權(system_rule表)的url的欄位加上唯一限制 2.

Docker EE 2.0版本釋出,完美支援Kubernetes容器編排_Kubernetes中文社群

儘管創始人剛離開Docker公司,但Docker仍持續版本更新計劃。Docker最近釋出了Docker企業版的2.0版,主打可以跨OS、跨雲的企業級容器管理平臺,也強調可以通過Kubernetes來管理跨雲容器排程。 Docker去年10月預告,將會再下一個版本支援Kubernetes 2.

Spark Release 2.0.0

原文連結       譯者:小村長 Spark2.0在2016年7月26日釋出,因為工作中經常用到,所以對它關注比較多,正好今天”提前”下班,所以抽空翻譯一下spark2.0發版概述,簡單的介紹一下spark2.0的新特性和新變化。好吧,現在就讓村長帶領大家一起走進spark2.0的神祕殿堂。