取消
顯示的結果
而不是尋找
你的意思是:

差異官方火花3.3.2磚中提供的運行時12.2 LTS導致NoSuchMethodError創建ParquetToSparkSchemaConverter時

396827年
新的因素

我嚐試運行spark-dependent磚集群的應用程序:

  • spark-3.3.2
  • 與磚集群運行時12.2 LTS (spark-3.3.2, scala - 2.12)

我最終得到:

NoSuchMethodError: org.apache.spark.sql.execution.datasources.parquet.ParquetToSparkSchemaConverter。lessinit美元美元更大的默認4美元()Z

火花似乎包含在磚運行時12.2 LTS不包括提交改變ParquetToSparkSchemaConverter的定義:https://issues.apache.org/jira/browse/spark - 40819(火花github:https://github.com/apache/spark/blame/a7bbaca013ad1ae92a437b12206fadfe93fea10f/sql/core/src/main/sca..。。不管怎樣的差異可以通過比較發現火花和磚運行時的發布說明:

不管怎樣,我調查的情況下進一步拆卸類引發3.3.2

' ' '

從“ParquetSchemaConverter.scala”編譯

公共類org.apache.spark.sql.execution.datasources.parquet。ParquetToSparkSchemaConverter {

私人最終布爾assumeBinaryIsString;

私人最終布爾assumeInt96IsTimestamp;

私人最終布爾caseSensitive;

私人最終布爾nanosAsLong;

公共靜態布爾lessinit更多美元默認4美元();

代碼:

0:getstatic # 85 / /字段org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter .MODULE美元:Lorg / apache /火花/ sql /執行/數據源/拚花/ ParquetToSparkSchemaConverter美元;

3:invokevirtual # 87 / /方法org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter lessinit大默認4美元美元:Z ()

6:ireturn

公共靜態布爾lessinit美元更大的違約3美元();

代碼:

0:getstatic # 85 / /字段org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter .MODULE美元:Lorg / apache /火花/ sql /執行/數據源/拚花/ ParquetToSparkSchemaConverter美元;

3:invokevirtual # 90 / /方法org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter。lessinit美元更大的違約3:美元()Z

6:ireturn

公共靜態布爾lessinit美元更大的違約2美元();

代碼:

0:getstatic # 85 / /字段org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter .MODULE美元:Lorg / apache /火花/ sql /執行/數據源/拚花/ ParquetToSparkSchemaConverter美元;

3:invokevirtual # 93 / /方法org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter。lessinit美元更大的違約2:美元()Z

6:ireturn

公共靜態布爾lessinit美元更大的違約1美元();

代碼:

0:getstatic # 85 / /字段org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter .MODULE美元:Lorg / apache /火花/ sql /執行/數據源/拚花/ ParquetToSparkSchemaConverter美元;

3:invokevirtual # 96 / /方法org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter。lessinit美元更大的違約1:美元()Z

6:ireturn

' ' '

當檢查Databricks-provided jar:

' ' '

從“ParquetSchemaConverter.scala”編譯

公共類org.apache.spark.sql.execution.datasources.parquet。ParquetToSparkSchemaConverter {

私人最終布爾assumeBinaryIsString;

私人最終布爾assumeInt96IsTimestamp;

私人最終布爾caseSensitive;

公共靜態布爾lessinit美元更大的違約3美元();

代碼:

0:getstatic # 84 / /字段org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter .MODULE美元:Lorg / apache /火花/ sql /執行/數據源/拚花/ ParquetToSparkSchemaConverter美元;

3:invokevirtual # 86 / /方法org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter。lessinit美元更大的違約3:美元()Z

6:ireturn

公共靜態布爾lessinit美元更大的違約2美元();

代碼:

0:getstatic # 84 / /字段org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter .MODULE美元:Lorg / apache /火花/ sql /執行/數據源/拚花/ ParquetToSparkSchemaConverter美元;

3:invokevirtual # 89 / /方法org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter。lessinit美元更大的違約2:美元()Z

6:ireturn

公共靜態布爾lessinit美元更大的違約1美元();

代碼:

0:getstatic # 84 / /字段org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter .MODULE美元:Lorg / apache /火花/ sql /執行/數據源/拚花/ ParquetToSparkSchemaConverter美元;

3:invokevirtual # 92 / /方法org/apache/spark/sql/execution/datasources/parquet/ParquetToSparkSchemaConverter。lessinit美元更大的違約1:美元()Z

6:ireturn

' ' '

所以事實上的公共靜態布爾lessinit更多美元默認4美元()”禮物。

誰能證實這一變化實際上是預期?應該如何處理

0回答0
歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map