我能連接到集群中,瀏覽其蜂巢目錄,見/表/視圖和列數據類型
運行一個簡單的select語句從一個視圖檢查機關文件產生這個錯誤並沒有其他的結果:
“SQL錯誤[500540][HY000]:[磚][DatabricksJDBCDriver]陷入BackgroundFetcher(500540)錯誤。前台線程ID: 180。後台線程ID: 223。錯誤捕獲:sun.misc。安全或java.nio.DirectByteBuffer。< init >(長,int)。”
標準磚集群:
Standard_DS3_v2
高級選項火花配置:
spark.databricks.cluster。概要singleNode
spark.databricks.io.directoryCommit。createSuccessFile假
火花。掌握當地(* 4)
spark.driver。extraJavaOptions -Dio.netty.tryReflectionSetAccessible = true
spark.hadoop.fs.azure.account.key。<有所> .blob.core.windows.net <有所>
spark.executor。extraJavaOptions -Dio.netty.tryReflectionSetAccessible = true
parquet.enable。summary-metadata假
我的本地機器:
22.1.2.202207091909 Dbeaver版本
Dbeaver JDBC URL:
jdbc:磚:/ / <有所> .1.azuredatabricks.net: 443 /違約;運輸方式= http; ssl = 1; httpPath = sql / protocolv1 / o / <有所> / <有所>;AuthMech = 3; UID =令牌;PWD = <有所>
12.4芯片MacOS版本(M1):蒙特利
Java版本:
java——版本
openjdk 18.0.1 2022-04-19
OpenJDK運行時環境自釀酒(構建18.0.1 + 0)
OpenJDK 64位服務器虛擬機自製程序(建立18.0.1 + 0,混合模式,共享)
我能做以下沒有錯誤(磚默認的測試數據集):
使用CSV選項(創建表鑽石路徑“/ databricks-datasets / Rdatasets /數據- 001 / CSV / ggplot2 /鑽石。csv”,標題“真正的”);
當我運行這個“選擇顏色從鑽石;”或“select * from鑽石;”
我得到了這個:
“SQL錯誤[500618][HY000]:[磚][DatabricksJDBCDriver](500618)錯誤發生而反序列化箭頭數據:sun.misc。安全或java.nio.DirectByteBuffer。< init >(長,int)不可用”
因此,任何選擇查詢的任何對象(鋪文件或其他)導致上述錯誤。
可能會出現什麼問題?建議如何解決這個錯誤嗎?為什麼我能夠連接和元數據的模式/表/視圖/列,但不是查詢或視圖數據?
更新。我已經嚐試SQL工作台/ J和遇到同樣的錯誤與Dbeaver(年代)。
我也試過JetBrains DataGrip,它運行良好。能夠連接,瀏覽查詢數據庫和表/視圖。https://docs.microsoft.com/en-us/azure/databricks/dev-tools/datagrip
你可以試著與dbfs前綴路徑:/
也請做測試從內部磚不使用JDBC驅動程序。
還請使用磚辛巴的JDBC驅動程序。你可以下載驅動程序//www.eheci.com/spark/jdbc-drivers-download?_ga=2.198791215.1433237262.1657645460-440078606.1..。
如果你仍然有問題,你可以使用這裏描述的遺留火花司機https://docs.www.eheci.com/integrations/bi/jdbc-odbc-bi.html building-the-connection-url-for-the-le……
你好休伯特,
我的回答:
注意:我已經嚐試另一種工具,DbVisualizer,似乎並沒有這個問題。問題是與Dbeaver磚辛巴的JDBC驅動程序。我需要幫助。
更新。我已經嚐試SQL工作台/ J和遇到同樣的錯誤與Dbeaver(年代)。
我也試過JetBrains DataGrip,它運行良好。能夠連接,瀏覽查詢數據庫和表/視圖。https://docs.microsoft.com/en-us/azure/databricks/dev-tools/datagrip
你是哪一個java版本運行這些工具嗎?
嚐試將java屬性設置io.netty.tryReflectionSetAccessible = true