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

磚JDBC和遠程寫

Optum
新的貢獻者三世

你好,

我想寫一個三角洲表在我的磚從遠程火花會話實例在不同的集群與辛巴火花司機。我可以讀,但是當我試圖做一個寫,我得到以下錯誤:

{

df.write.format (jdbc) .mode SaveMode.Append .options(地圖(

" url " - > " jdbc:火花:/ /亞行- < host_id > .azuredatabricks.net: 443 /違約;運輸方式= http; ssl = 1; httpPath = < http_path >; AuthMech = 3; UID =令牌;PWD = <標記> ",

“數據表”- >“testtable”,

“驅動程序”- >“com.simba.spark.jdbc.Driver”

).save ()

}

java.sql。SQLFeatureNotSupportedException: [Simba][JDBC](10220) Driver does not support this optional feature.

在com.simba.spark.exceptions.ExceptionConverter。toSQLException(未知來源)

com.simba.spark.jdbc.common.SPreparedStatement.checkTypeSupported(未知源)

com.simba.spark.jdbc.common.SPreparedStatement.setNull(未知源)

org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils .savePartition美元(JdbcUtils.scala: 677)

在org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils。美元anonfun saveTable 1美元(JdbcUtils.scala: 856)

org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils。美元anonfun saveTable美元$ 1 $改編(JdbcUtils.scala: 854)

在org.apache.spark.rdd.RDD。anonfun foreachPartition美元2美元(RDD.scala: 1020)

……

我目前使用“數據科學與工程”部分的集群連接,在先進的部分有細節通過JDBC / ODBC連接。一些指南表明使用SQL端點,這可能是我的問題,但我沒有權限來創建一個。一些帖子,比如StackOverflow,表明這是一個問題的自動提交功能,不支持的辛巴火花司機,但我不確定,我找不到一個火花或驅動程序選項,顯示關閉這個。

此外,所有的文檔做的火花。似乎寫操作時的一個筆記本磚服務器實例和遠程連接使用驅動程序示例。我丟失的文檔頁麵將在哪裏?

遠程火花實例

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

火花版本:3.1.1

Scala版本:2.1210

辛巴從磚JDBC驅動程序:火花2.6.22

磚集群的設置

- - - - - - - - - - - - - - - - - - - - - - - -

Azure雲係統:

政策:不受限製的

集群模式:標準

自動定量:啟用

磚運行時版本:9.1 LTS(包括Apache 3.1.2, Scala 2.12)

工人和司機類型:Standard_DS3_v2

請讓我知道如果你需要任何其他信息來幫助我解決我的問題。

謝謝你!

10個回答10

Optum
新的貢獻者三世

我不清楚如何設置自動提交/錯誤。這是我應該做我的火花配置設置,當我啟動它的殼/提交嗎?還是有一些標準JDBC配置文件被引用的地方這些設置被關閉?我問,因為我唯一看到關閉自動提交相關文檔與java.sql直接。連接類,但是我想寫使用df.write.format (jdbc)。選項(地圖(…)).save(),它將拋出一個錯誤如果您試圖設置一個自動提交選項。我還沒有看到一個autocommit-related選項在辛巴JBDC文檔可用驅動程序的列表選項,可以通過設置選項(地圖(…))調用。我不能用一個連接對象,隻有通過直接SQL命令不會寫出DataFrame;我可以循環注入插入,但太笨重和緩慢。

User16752239289
貢獻者三世
貢獻者三世

@Kai·麥克尼利你能提供我更多的細節在你的客戶嗎?哪個版本等引發您運行您的代碼和配置默認以外的你提供額外的火花呢?我測試使用火花3。x違約引發conf它適合我。

Optum
新的貢獻者三世

我用火花3.1.2(3.1.1首次發布上市,部署最初上市3.1.1)初始化:spark-shell spark-shell—target: jvm - 1.8

我將在接下來的包(目前一些使用和未使用的):

——設計“spark.driver.extraClassPath = ~ /罐/ SparkJDBC42。jar " \

——spark.jars相依”。存儲庫=路徑/ \ /回購”

——包”com.microsoft.sqlserver: mssql-jdbc: 6.4.0.jre8 net.sourceforge.jtds: jtds: 1.3.1, com.oracle.database.jdbc: ojdbc8:21.1.0.0, com.databricks: spark-avro_2.10:4.0.0”

以下是消除識別信息設置,隱式地從/ opt / / conf / spark-default.conf火花:

spark.master = k8: / / https://kubernetes.default.svc.cluster.local: 443

spark.app.name = sp-worker

spark.eventLog。使真正的

spark.eventLog。dir文件:/ / /火花/日誌

spark.kubernetes.driver.limit.cores = 2

spark.kubernetes.executor.limit.cores = 4

spark.executor.instances = 2

spark.executor.memory = 4 g

spark.kubernetes.executor.limit.cores = 4

spark.kubernetes.executor.request.cores = 250

spark.kubernetes.driver.label.app = spark-jlab

spark.kubernetes.executor.label.app = spark-jlab

spark.kubernetes.executor.label.deployment = jlab

spark.kubernetes.local.dirs.tmpfs = true

spark.kubernetes.container.image.pullPolicy = IfNotPresent

spark.kubernetes.container.image =docker.someurl.com/path/to/image/repo

#回家Python庫

spark.kubernetes.driver.volumes.persistentVolumeClaim.home.mount.path = /家庭

spark.kubernetes.driver.volumes.persistentVolumeClaim.home.mount.readOnly = false

spark.kubernetes.driver.volumes.persistentVolumeClaim.home.options.claimName = jlab

spark.kubernetes.executor.volumes.persistentVolumeClaim.home.mount.path = /家庭

spark.kubernetes.executor.volumes.persistentVolumeClaim.home.mount.readOnly = false

spark.kubernetes.executor.volumes.persistentVolumeClaim.home.options.claimName = jlab

# #日誌

spark.kubernetes.driver.volumes.persistentVolumeClaim.logs.mount.path = /日誌

spark.kubernetes.driver.volumes.persistentVolumeClaim.logs.mount.readOnly = false

spark.kubernetes.driver.volumes.persistentVolumeClaim.logs.options.claimName = k8s-sparkhistorylogs

spark.kubernetes.executor.volumes.persistentVolumeClaim.logs.mount.path = /日誌

spark.kubernetes.executor.volumes.persistentVolumeClaim.logs.mount.readOnly = false

spark.kubernetes.executor.volumes.persistentVolumeClaim.logs.options.claimName = k8s-sparkhistorylogs

spark.kubernetes.namespace =名稱空間- 00000

spark.kubernetes.authenticate.driver.serviceAccountName = svcactnm - 00000

spark.kubernetes.authenticate.oauthToken =令牌

spark.kubernetes.authenticate.caCertFile = / opt / osficerts / ctc.crt

spark.ui.xContentTypeOptions.enabled = true

spark.kubernetes.pyspark.pythonVersion = 3

pulkitm
新的貢獻者三世

嗨@Kai·麥克尼利,你能夠解決這個問題嗎?我也麵臨著同樣的問題使用相同的火花和JDBC驅動程序的版本。

Atanu
尊敬的貢獻者
尊敬的貢獻者

你可以嚐試設置國旗忽略交易?我不知道確切的旗幟,但應該有更多的細節在JDBC手冊如何做到這一點

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

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

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

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

Baidu
map