我正在尝试使用下面的代码将存储在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数据库:
要将数据成功插入默认数据库,请确保创建一个表或视图。
检出写入默认数据库的数据框。
将数据写入Azure SQL数据库:
这是有关如何将数据从数据帧写入Azure SQL数据库的示例。
检出写入Azure SQL数据库的数据框。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句