磚運行時7。x遷移指南

本指南提供指導幫助您遷移從磚磚工作負載運行時6。x,基於Apache 2.4,火花磚運行時7.3 LTSorgydF4y2Ba磚運行時的7.6(不支持)(最新數據磚運行時7。xrelease), both built on Spark 3.0. The same migration considerations apply for Databricks Runtime 7.3 LTS for Machine Learning, Databricks Runtime 7.3 LTS for Genomics, and Databricks Runtime 7.6 for Machine Learning.

本指南列出了3.0引發行為變化可能需要你更新數據磚工作負載。這些變化包括完整切除Python 2支持,升級到Scala 2.12,完全支持JDK 11,開關從羅馬到預期的日曆日期和時間戳。

本指南是一個同伴磚運行時7.3 LTS遷移指南

磚運行時7.3 LTS和7.6係統的環境

  • 操作係統:Ubuntu 18.04.5 LTS

  • Java:

    • 7.6:祖魯8.50.0.51-CA-linux64(構建1.8.0_275-b01)

    • 7.3 LTS:祖魯8.48.0.53-CA-linux64(構建1.8.0_265-b11)

  • Scala:2.12.10

  • Python:3.7.5

  • R3.6.3 (2020-02-29)

  • 三角洲湖0.7.0

Apache 3.0引發行為的重大變化

以下行為變化從2.4 - 3.0引發火花可能需要你更新數據磚工作負載遷移從磚運行時的6。x磚運行時的7.倍。

請注意

本文提供了重要的引發行為變化的列表時,您需要考慮遷移到磚運行時的7.倍。行為變化的完整列表,請參閱火花3.0.1遷移指南

核心

  • 在火花3.0中,棄用蓄電池v1。

  • 事件日誌文件將被寫成utf - 8編碼,並引發服務器將重演曆史事件日誌文件為utf - 8編碼。以前火花寫事件日誌文件作為司機JVM進程的默認字符集,因此引發火花的曆史服務器2。x是需要讀取舊事件日誌文件不兼容的編碼。

  • 使用的是新協議獲取洗牌街區。建議外部洗牌服務升級運行時引發3.0應用程序。你仍然可以使用舊的外部洗牌服務通過設置配置spark.shuffle.useOldFetchProtocol真正的。否則,火花可能會遇到錯誤等信息IllegalArgumentException:意想不到的消息類型:<數>

PySpark

  • 在火花3.0中,Column.getItem是固定的,它不叫Column.apply。因此,如果使用作為一個參數getItem,應該使用索引操作符。例如,map_col.getItem(坳(id))應該換成map_col[坳(id)]

  • 3.0的火花,字段名稱時不再是按照字母順序排列的構造為Python版本3.6及以上命名參數,並將匹配字段的順序進入。默認啟用排序字段,如火花2.4,設置環境變量PYSPARK_ROW_FIELD_SORTING_ENABLED真正的執行者和司機。這個環境變量在所有執行者和驅動程序必須是一致的。否則,它可能會導致失敗或不正確的答案。對於Python版本低於3.6,字段名稱字母順序是唯一的選擇。

  • 棄用Python 2支持(火星- 27884)。

結構化流

  • 在火花3.0中,結構化流力源模式為nullable當文件的數據源,如文本、json、csv、拚花和獸人是通過使用spark.readStream (…)。以前,它尊重nullability源模式;然而,它與肺水腫難以調試的問題引起的。恢複之前的行為,集spark.sql.streaming.fileSource.schema.forceNullable

  • 火花3.0補丁Stream-stream外連接的正確性問題,改變國家的模式。看到火星- 26154為更多的細節。如果你開始你的查詢從檢查站由火花2。xwhich uses stream-stream outer join, Spark 3.0 fails the query. To recalculate outputs, discard the checkpoint and replay previous inputs.

  • 在火花3.0中,棄用類org.apache.spark.sql.streaming.ProcessingTime被移除。使用org.apache.spark.sql.streaming.Trigger.ProcessingTime代替。同樣的,org.apache.spark.sql.execution.streaming.continuous.ContinuousTrigger已被刪除的嗎Trigger.Continuous,org.apache.spark.sql.execution.streaming.OneTimeTrigger一直隱藏在忙的嗎Trigger.Once。看到火星- 28199

SQL、數據集和DataFrame

  • 在火花3.0中,當一個值插入到表中列有不同的數據類型,類型強製執行按照ANSI SQL標準。某些不合理的轉換等類型轉換字符串int布爾是不允許。會拋出一個運行時異常,如果該值超出範圍的數據類型的列。在火花2.4和更早的版本上,類型轉換期間允許表插入,隻要他們是有效的。當插入一個超出範圍值積分,低階位的值插入(一樣的Java / Scala數值類型鑄造)。例如,如果插入257字節的字段類型,結果是1。行為控製的選項spark.sql.storeAssignmentPolicy,一個默認值“ANSI”。設置選項“遺留”恢複以前的行為。

  • 在火花3.0中,當鑄造字符串值積分類型(非常小的整數,短整型,int和長整型數字),datetime類型(日期、時間戳和間隔)和布爾類型,前導和尾隨空白(< = ACSII 32)削減之前被轉換為這些類型的值,例如鑄造('1 \ t '作為int)返回1,鑄造('1 \ t '作為布爾型)返回真正的,(“2019-10-10 \ t作為日期)返回日期值2019-10-10。火花2.4和更早的版本,而鑄造弦積分和布爾值,它不會削減從兩端的空白,將上述結果,日期時間,隻有尾隨的空格(= ASCII 32)將被刪除。看到//m.eheci.com/blog/2020/07/22/a -綜合- - - - - - -看-日期-和-時間戳- - apache -火星- 3 - 0. - html

  • 在火花3.0中,棄用的方法SQLContext.createExternalTableSparkSession.createExternalTable已被拆除,取而代之的是他們的替代,不知道

  • 在火花3.0中,配置spark.sql.crossJoin.enabled變成內部配置,默認是正確的,那麼在默認情況下不會引發異常火花SQL和隱含的交叉連接。

  • 在火花3.0中,我們扭轉修剪函數的參數削減(trimStrstr)削減(str,trimStr)兼容其他數據庫。

  • 在火花2.4和更早的版本上,SQL查詢等<表>orgydF4y2Ba<表>聯盟所有<表>受到意外的支持。在hive-style<表>選擇< expr >,選擇條款不可以忽略不計。蜂巢和轉眼間支持這種語法。因此,我們將把這些查詢火花3.0以來為無效。

  • 因為火花3.0,數據集和DataFrame APIunionAll不棄用了。這是一個別名聯盟

  • 在火花2.4和更早的版本中,解析器的JSON數據源將空字符串視為零等一些數據類型IntegerType。為FloatType倍增式和拋出異常,不能空字符串。由於火花3.0,我們不允許空字符串和數據類型,除了將拋出異常StringTypeBinaryType

  • 因為3.0,火花from_json支持兩種模式——功能寬容的FAILFAST。可以通過設置模式模式選擇。默認模式成為寬容的。在以前的版本中,行為的from_json不符合嗎寬容的orgydF4y2BaFAILFAST,特別是在畸形的JSON處理記錄。例如,JSON字符串{“a”1}與模式一個INT被轉換為3.0以前的版本,但引發轉換行(空)

DDL語句

  • 在火花3.0中,創建沒有一個特定的提供者使用的價值spark.sql.sources.default作為其提供者。在火花版本2.4及以下,這是蜂巢。恢複之前的行為引發3.0中,您可以設置spark.sql.legacy.createHiveTableByDefault.enabled真正的

  • 在火花3.0中,當一個值插入到表中列有不同的數據類型,類型強製執行按照ANSI SQL標準。某些不合理的轉換等類型轉換字符串int布爾是不允許。拋出一個運行時異常時如果該值超出範圍的數據類型的列。在火花版本2.4及以下,類型轉換在表插入是允許的,隻要它們是有效的。當插入一個超出範圍值積分,低階位的值插入(一樣的Java / Scala數值類型鑄造)。例如,如果插入257字節的字段類型,結果是1。行為控製的選項spark.sql.storeAssignmentPolicy,一個默認值“ANSI”。設置選項為“遺產”恢複以前的行為。

  • 在火花3.0中,顯示創建總是返回火花DDL,即使給定的表是一個蜂巢SerDe表。蜂巢生成DDL,使用顯示創建作為SERDE命令。

  • 在火花3.0中,列的字符類型是不允許non-Hive-Serde表和創建/修改命令會失敗如果字符類型檢測。請使用字符串類型。在火花版本2.4及以下,字符類型被視為字符串類型和長度參數僅僅是忽略。

udf和內置函數

  • 在火花3.0中,使用org.apache.spark.sql.functions.udf (AnyRef數據類型)在默認情況下是不允許的。集spark.sql.legacy.allowUntypedScalaUDF真正的繼續使用它。在火花版本2.4及以下,如果org.apache.spark.sql.functions.udf (AnyRef數據類型)獲得一個Scala關閉與原始類型參數,返回的UDF返回null如果輸入值是null。然而,在火花3.0中,Java類型的UDF返回默認值如果輸入值是null。例如,瓦爾f=udf (x):Int)= >x,IntegerType),f (x美元)下麵的火花2.4和返回null如果列x為空,返回0,3.0火花。這種行為改變了因為火花3.0是用Scala 2.12默認情況下建造的。

  • 在火花版本2.4及以下,您可以創建一個地圖複製鑰匙通過內置函數CreateMap,StringToMap等。地圖複製鑰匙是未定義的行為,例如,地圖查找方麵重複鍵最先出現,Dataset.collect隻有不斷重複鍵出現,MapKeys返回重複的鍵,等等。在3.0火花,火花拋出RuntimeException當複製鑰匙。你可以設置spark.sql.mapKeyDedupPolicyLAST_WIN刪除處理地圖鍵與去年贏得政策。用戶可能仍然從數據源讀取映射值和重複鍵不執行(例如,拚花),其行為是未定義的。

數據源

  • 在火花版本2.4及以下,分區列值被轉換為零,如果不能提供對應的用戶模式。在3.0中,分區列值與用戶提供的模式驗證。如果驗證失敗是拋出一個異常。你可以禁用驗證通過設置spark.sql.sources.validatePartitionColumns

  • 在火花版本2.4及以下,JSON數據源的解析器將空字符串視為零等一些數據類型IntegerType。為FloatType,倍增式,DateTypeTimestampType和拋出異常,不能空字符串。火花3.0不允許空的字符串,將拋出一個異常數據類型除外StringTypeBinaryType。以前的行為允許空字符串可以通過設置恢複spark.sql.legacy.json.allowEmptyString.enabled真正的

  • 在火花3.0中,如果文件或子目錄消失在遞歸目錄清單(也就是說,他們出現在一個中間清單但不能讀或在上市後階段的遞歸目錄清單,由於並發文件刪除或對象存儲一致性問題)然後用例外,除非清單將會失敗spark.sql.files.ignoreMissingFiles真正的(默認錯誤)。在以前的版本中,這些丟失的文件或子目錄將被忽略。注意,這個改變的行為隻在初始表文件清單(或期間刷新),而不是在查詢執行:淨變化spark.sql.files.ignoreMissingFiles現在遵守表文件清單和查詢計劃期間,不僅在查詢執行時間。

  • 在火花版本2.4及以下,CSV數據源轉換一個畸形的CSV與所有null字符串連續寬鬆的模式。在火花3.0中,返回的行可以包含非空字段如果CSV列值的解析並轉換為成功所需的類型。

  • 在火花3.0中,拚花邏輯類型TIMESTAMP_MICROS在默認情況下使用時節省時間戳列。在火花版本2.4及以下,時間戳列是保存為INT96在檢查機關文件中。注意,一些SQL係統,如蜂巢1。x和黑斑羚2。xcan only read INT96 timestamps. You can setspark.sql.parquet.outputTimestampType作為INT96恢複以前的行為和保持互操作性。

  • 在火花3.0中,當Avro文件編寫與用戶模式,提供匹配的字段,字段名之間的催化劑模式和Avro模式,而不是職位。

查詢引擎

  • 在火花3.0中,數據集查詢失敗,如果它包含模糊列引用,是由自我加入。一個典型的例子:瓦爾df1=…;瓦爾df2=df1.filter (…);然後df1.join (df2df1 (“”)>df2 (“a”))返回一個空的結果相當令人困惑。這是因為火花不能解決數據集列引用,指向表被自我加入,和df1 (“”)一模一樣嗎df2 (“”)在火花。恢複之前的行為引發3.0中,您可以設置spark.sql.analyzer.failAmbiguousSelfJoin

  • 在火花3.0中,數字用科學記數法(例如,1 e2)解析。在火花版本2.4及以下,他們解析小數。3.0恢複pre-Spark行為,您可以設置spark.sql.legacy.exponentLiteralAsDecimal.enabled真正的

  • 在火花3.0中,配置spark.sql.crossJoin.enabled成為一個內部配置,默認情況下是正確的。默認情況下火花不會提高SQL和隱含的十字架上連接異常。

  • 在火花版本2.4及以下,浮動/雙-0.0語義等於0.0,-0.0和0.0,但被認為是作為總分組關鍵字使用時不同的值,分區鍵,窗口和連接鍵。在火花3.0中,這個bug是固定的。例如,Seq (-0.0,0.0).toDF (d) .groupBy (d) .count ()返回[(0.0,2))在火花3.0[(0.0,1),(-0.0,1))在火花2.4甚至更低。

  • 在火花3.0中,時間戳使用SQL配置文字轉換為字符串spark.sql.session.timeZone。在火花版本2.4及以下,使用默認時區轉換的Java虛擬機。

  • 在火花3.0中,引發投字符串日期/時間戳在二進製比較日期/時間戳。前麵的鑄造的行為日期/時間戳字符串可以通過設置恢複嗎spark.sql.legacy.typeCoercion.datetimeToString.enabled真正的

  • 在火花版本2.4及以下,無效的時區ids時區格林尼治時間靜靜地被忽視,取而代之的是,例如,在from_utc_timestamp函數。在火花3.0中,這樣的時區id被拒絕,引發拋出java.time.DateTimeException

  • 在火花3.0中,預期的公曆是用於解析、格式,並將日期和時間戳等在提取子組件年,天等等。火花從Java 3.0 8使用Java API類。基於時間的包ISO年表。在火花版本2.4及以下,使用混合日曆(執行這些操作朱利安+格雷戈裏)。日期的變化影響結果在10月15日之前,1582年(公曆)和影響以下火花3.0 API:

    • 解析/時間/日期格式化字符串。這個影響CSV / JSON數據源和unix_timestamp,date_format,to_unix_timestamp,from_unixtime,to_date,to_timestamp功能模式時由用戶指定用於解析和格式化。在火花3.0中,我們定義自己的模式字符串sql-ref-datetime-pattern.md,這是通過實現java.time.format.DateTimeFormatter在引擎蓋下。其輸入的新實現執行嚴格的檢查。例如,2015-07-2210:00:00如果模式是無法解析的時間戳yyyy-MM-dd因為解析器不使用完整的輸入。另一個例子是31/01/201500:00無法解析的輸入dd / MM / yyyyhh: mm模式,因為hh是以小時範圍1 - 12。在火花版本2.4及以下,java.text.SimpleDateFormat用於時間/日期字符串轉換,和描述的支持模式simpleDateFormat。可以通過設置恢複舊的行為spark.sql.legacy.timeParserPolicy遺產

    • weekofyear,工作日,dayofweek,date_trunc,from_utc_timestamp,to_utc_timestamp,unix_timestamp函數使用java.timeAPI計算周數年,一天數星期的轉換從/到TimestampType值在UTC時間區域。

    • JDBC選項下界upperBound轉換為TimestampType / DateType值相同的方式TimestampType / DateType鑄造字符串值。轉換是基於預期的公曆,時區配置定義的SQLspark.sql.session.timeZone。在火花版本2.4及以下,轉換是基於混合日曆(Julian +公曆)和係統默認時區。

    • 格式化時間戳日期字麵值。

    • 創建類型時間戳日期從字符串字麵值。在火花3.0中,字符串類型轉換時間/日期文字是通過鑄造來執行的時間/日期值。例如,時間戳“2019-12-2312:59:30”語義上等於鑄造(' 2019-12-2312:59:30”作為時間戳)。當輸入字符串不包含信息時區,時區從SQL配置spark.sql.session.timeZone在這種情況下使用。在火花版本2.4及以下,轉換是基於JVM係統時區。默認時區的不同來源可能改變的行為類型時間戳日期字麵值。

Apache蜂巢

  • 在火花3.0中,我們升級內置的蜂巢從1.2到2.3版本帶來以下影響:

    • 您可能需要設置spark.sql.hive.metastore.versionspark.sql.hive.metastore.jars根據版本的蜂巢metastore要連接。例如:設置spark.sql.hive.metastore.version1.2.1 "spark.sql.hive.metastore.jarsmaven如果你的蜂巢metastore版本是這次1.2.1。

    • 你需要定製並行轉換器遷移到蜂巢2.3或建立自己的火花蜂巢- 1.2概要文件。看到蜂巢- 15167為更多的細節。

    • 小數點字符串表示可以不同蜂巢蜂巢1.2和2.3在使用變換運營商在SQL腳本的轉換,這取決於蜂巢的行為。在蜂巢1.2中,字符串表示省略了落後於0。但在蜂巢2.3中,總是墊18位數0如果必要的話。

    • 磚運行時的7。x,when reading a Hive SerDe table, by default Spark disallows reading files under a subdirectory that is not a table partition. To enable it, set the configurationspark.databricks.io.hive.scanNonpartitionedDirectory.enabled作為真正的。這並不影響火花原生表讀者和文件讀者。

MLlib

  • OneHotEncoder棄用在2.3,在3.0和刪除OneHotEncoderEstimator現在更名為OneHotEncoder

  • org.apache.spark.ml.image.ImageSchema.readImages棄用在2.3,在3.0刪除。使用spark.read.format('圖像')代替。

  • org.apache.spark.mllib.clustering.KMeans.train與參數Int運行棄用在2.1,在3.0刪除。使用訓練方法沒有運行。

  • org.apache.spark.mllib.classification.LogisticRegressionWithSGD移除棄用在2.0,在3.0中,使用org.apache.spark.ml.classification.LogisticRegressionorgydF4y2Baspark.mllib.classification.LogisticRegressionWithLBFGS代替。

  • org.apache.spark.mllib.feature.ChiSqSelectorModel.isSorted棄用在2.1,在3.0,不是用於子類使用。

  • org.apache.spark.mllib.regression.RidgeRegressionWithSGD棄用在2.0,在3.0刪除。使用org.apache.spark.ml.regression.LinearRegressionelasticNetParam=0.0。注意默認regParam是0.01RidgeRegressionWithSGD,但0.0LinearRegression

  • org.apache.spark.mllib.regression.LassoWithSGD棄用在2.0,在3.0刪除。使用org.apache.spark.ml.regression.LinearRegressionelasticNetParam=1.0。注意默認regParam是0.01LassoWithSGD,但0.0LinearRegression

  • org.apache.spark.mllib.regression.LinearRegressionWithSGD棄用在2.0,在3.0刪除。使用org.apache.spark.ml.regression.LinearRegressionorgydF4y2BaLBFGS代替。

  • org.apache.spark.mllib.clustering.KMeans.getRunssetRuns棄用的2.1,在3.0,火花2.0.0以來,沒有效果。

  • org.apache.spark.ml.LinearSVCModel.setWeightCol棄用在2.4,在3.0被移除,並不是麵向用戶。

  • 在3.0中,org.apache.spark.ml.classification.MultilayerPerceptronClassificationModel擴展MultilayerPerceptronParams公開訓練參數。作為一個結果,MultilayerPerceptronClassificationModel改變了的數組(Int)IntArrayParam。你應該使用MultilayerPerceptronClassificationModel.getLayers而不是MultilayerPerceptronClassificationModel.layers檢索層的大小。

  • org.apache.spark.ml.classification.GBTClassifier.numTrees2.4.5棄用,是在3.0刪除。使用getNumTrees代替。

  • org.apache.spark.ml.clustering.KMeansModel.computeCost移除棄用在2.4,在3.0中,使用ClusteringEvaluator代替。

  • 成員變量精度org.apache.spark.mllib.evaluation.MulticlassMetrics棄用在2.0,在3.0刪除。而是使用精度。

  • 成員變量召回org.apache.spark.mllib.evaluation.MulticlassMetrics棄用在2.0,在3.0刪除。使用精度代替。

  • 的成員變量fMeasureorg.apache.spark.mllib.evaluation.MulticlassMetrics棄用在2.0,在3.0刪除。使用精度代替。

  • org.apache.spark.ml.util.GeneralMLWriter.context棄用在2.0,在3.0刪除。使用會話代替。

  • org.apache.spark.ml.util.MLWriter.context棄用在2.0,在3.0刪除。使用會話代替。

  • org.apache.spark.ml.util.MLReader.context棄用在2.0,在3.0刪除。使用會話代替。

  • 文摘UnaryTransformer (,出來,T<:UnaryTransformer (,出來,T]]更改為文摘UnaryTransformer (:類型標簽,:類型標簽,T<:UnaryTransformer (,出來,T]]在3.0。

  • 在火花3.0中,一個多級邏輯回歸Pyspark現在將(正確地)返回LogisticRegressionSummary,而不是子類BinaryLogisticRegressionSummary。額外的暴露的方法BinaryLogisticRegressionSummary在這種情況下,無論如何也不會工作。(火星- 31681)

  • 在火花3.0中,pyspark.ml.param.shared.Has *mixin不提供任何設置*(自我,值)setter方法,使用各自的self.set(自我。*,值)代替。有關詳細信息,請參閱火花- 29093。(火星- 29093)

其他行為變化

  • 升級到Scala 2.12涉及以下變化:

    • 包細胞序列化處理不同。下麵的例子說明了行為改變以及如何處理它。

      運行foo.bar.MyObjectInPackageCell.run ()如下包中定義的細胞將引發錯誤java.lang.NoClassDefFoundError:可以初始化foo.bar.MyObjectInPackageCell美元

      噴火酒吧情況下MyIntStruct(int:Int)進口orgapache火花sqlSparkSession進口orgapache火花sql功能_進口orgapache火花sql對象MyObjectInPackageCell擴展可序列化的{/ /因為在火花執行人SparkSession不能被創造,/ /以下行觸發誤差/ /不能初始化類foo.bar.MyObjectInPackageCell $瓦爾火花=SparkSession構建器getOrCreate()def噴火:Int= >選項(MyIntStruct]=(x:Int)= >一些(MyIntStruct(One hundred.))瓦爾theUDF=udf(噴火)瓦爾df={瓦爾myUDFInstance=theUDF(上校(“id”))火花範圍(0,1,1,1)。withColumn(“u”,myUDFInstance)}def運行():單位={df收集()。foreach(println)}}

      要解決這個錯誤,你可以包裝MyObjectInPackageCell在一個可序列化的類。

    • 某些情況下使用DataStreamWriter.foreachBatch需要更新源代碼。這種變化是由於這一事實Scala 2.12從lambda表達式自動轉換到山姆類型和可能導致歧義。

      例如,下麵的Scala代碼不能編譯:

      writeStreamforeachBatch{(df,id)= >myFunc(df,id)}

      解決編譯錯誤,改變foreachBatch{(df,id)= >myFunc (df,id)}foreachBatch (myFunc_)或使用Java API明確:foreachBatch(新VoidFunction2…)

  • 1.11.655 AWS SDK升級,使用org.apache.hadoop.fs.s3native.NativeS3FileSystem需要AWS簽名v4和桶端點設置。403年禁止如果用戶可能會引發錯誤配置AWS簽名v2簽署與S3N S3請求文件係統或用戶訪問S3路徑包含“+”的角色,並使用遺留S3N文件係統(例如S3N: / /桶/路徑/ +文件)。

  • 因為Apache蜂巢蜂巢版本用於處理用戶定義函數和蜂巢並行轉換器是升級到2.3,需要兩個變化:

    • 蜂巢的SerDe接口是取而代之的是一個抽象類AbstractSerDe。對於任何定製的蜂巢SerDe實現,遷移到AbstractSerDe是必需的。

    • 設置spark.sql.hive.metastore.jars內裝式意味著蜂巢2.3 metastore客戶機將用於訪問metastores磚運行時的7.倍。如果你需要訪問基於蜂巢1.2外部metastores集spark.sql.hive.metastore.jars的文件夾,其中包含蜂巢1.2罐。

不支持和刪除

  • 數據跳過指數廢棄磚磚運行時的7. x 4.3運行時,刪除。相反,我們建議您使用三角洲表提供改進的數據跳過功能

  • 磚運行時的7。x,the underlying version of Apache Spark uses Scala 2.12. Since libraries compiled against Scala 2.11 can disable Databricks Runtime 7.x clusters in unexpected ways, clusters running Databricks Runtime 7.x do not install圖書館所有集群上安裝配置。集群庫選項卡顯示一個狀態跳過棄用的信息,解釋了圖書館處理的變化。然而,如果你有一個集群,是磚的早期版本運行時創建的之前磚平台3.20版本發布到您的工作Beplay体育安卓版本空間中,你現在編輯集群使用磚運行時7。x,一個ny libraries that were configured to be installed on all clusters will be installed on that cluster. In this case, any incompatible JARs in the installed libraries can cause the cluster to be disabled. The workaround is either to clone the cluster or to create a new cluster.

  • org.apache.hadoop.fs.s3native.NativeS3FileSystemorg.apache.hadoop.fs.s3.S3FileSystem不再支持訪問S3。

    我們強烈鼓勵你使用com.databricks.s3a.S3AFileSystem,這是默認的s3a: / /,s3: / /,s3n: / /在磚運行時文件係統方案。如果你需要援助與遷移com.databricks.s3a.S3AFileSystem,聯係磚或磚代表的支持。

已知的問題

  • 解析天每年的使用模式字母“D”今年返回錯誤的結果,如果字段是失蹤。這可以發生在SQL函數to_timestamp它解析datetime字符串使用模式字符串datetime值。(火星- 31939)

  • 加入/窗/聚合內部子查詢可能導致錯誤結果如果鍵值-0.0和0.0。(火星- 31958)

  • 一個窗口查詢可能會失敗與模糊自意外錯誤。(火星- 31956)

  • 流媒體查詢,dropDuplicates運營商可能無法重啟檢查點火花寫的2.倍。(火星- 31990)