pyspark jdbc 连接到 sql 服务器时出错

pyspark jdbc error when connecting to sql server

我正在尝试使用下面的代码将存储在 Azure Data Lake Gen2 上的 json 文档导入到 SQL 服务器数据库,但是 运行 出现以下错误。但是当我从 SQL 服务器读取数据时,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 文档插入到员工 table 中?

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

您可以查看 Microsoft Q&A - Azure Databricks 论坛上的查询。

正在将数据写入 Azure Databricks 数据库:

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

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

正在将数据写入 Azure SQL 数据库:

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

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