pyspark jdbc连接到SQL Server时出错

问题描述

我正在尝试使用以下代码将存储在Azure Data Lake Gen2上的json文档导入到SQL Server数据库,但是遇到以下错误。但是,当我从SQL Server读取数据时,jdbc连接有效。

错误消息: The driver could not open a JDBC connection.

代码:

df = spark.read.format('json').load("wasbs://<file_system>@<storage-account-name>.blob.core.windows.net/empDir/data";)
val blobStorage = "<blob-storage-account-name>.blob.core.windows.net"
val blobContainer = "<blob-container-name>"
val blobAccessKey =  "<access-key>"
val empDir = "wasbs://" + blobContainer + "@" + blobStorage +"/empDir"
val acntInfo = "fs.azure.account.key."+ blobStorage
sc.hadoopConfiguration.set(acntInfo,blobAccessKey)
val dwDatabase = "<database-name>"
val dwServer = "<database-server-name>"
val dwUser = "<user-name>"
val dwPass = "<password>"
val dwJdbcPort =  "1433"
val sqlDwUrl = "jdbc:sqlserver://" + dwServer + ":" + dwJdbcPort + ";database=" + dwDatabase + ";user=" + dwUser+";password=" + dwPass
spark.conf.set("spark.sql.parquet.writeLegacyFormat","true")
df.write.format("com.microsoft.sqlserver.jdbc.SQLServerDriver").option("url",sqlDwUrl).option("dbtable","Employee").option( "forward_spark_azure_storage_credentials","True").option("tempdir",empDir).mode("overwrite").save()

还要如何将empDir目录中的所有json文档插入employee表中?

解决方法

当没有要创建的关联表或视图创建时,您将收到以下错误消息:org.apache.spark.sql.AnalysisException: Table or view not found: dbo.Employee。确保代码指向正确的数据库[Azure Databricks数据库(内部)或Azure SQL数据库(外部)]

您可以在Microsoft Q&A - Azure Databricks论坛上签出查询。

将数据写入Azure Databricks数据库:

要成功地将数据插入默认数据库,请确保创建表或视图。

enter image description here

检出写入默认数据库的数据框。

enter image description here

将数据写入Azure SQL数据库:

这是一个有关如何将数据从数据帧写入Azure SQL数据库的示例。

enter image description here

检出写入Azure SQL数据库的数据框。

enter image description here

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...