当前位置: 首页 > 知识库问答 >
问题:

从数据库到天蓝色突触的连接

高云瀚
2023-03-14

我是云服务的新手,我试图在databricks和azure synapse之间建立联系。我的笔记本电脑中有生成数据帧的数据块,我想用它们填充synapse中的专用SQL池。

在查看了microsoft文档中建议的操作并遵循这些步骤后,我遇到了这个错误。

法典

df = spark.read \
  .format("com.databricks.spark.sqldw") \
  .option("url", <the-rest-of-the-connection-string>") \
  .option("forwardSparkAzureStorageCredentials", "true") \
  .option("dbTable", "Table") \
  .option("tempDir", "wasbs://<your-container-name>@<your-storage-account-name>.blob.core.windows.net/<your-directory-name>") \
  .load()

错误

Py4JJavaError: An error occurred while calling o1509.save.
: com.databricks.spark.sqldw.SqlDWConnectorException: Exception encountered in Azure Synapse Analytics connector code.

Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 14

一些考虑

  • 我创建了一个简单的数据框用于测试目的,假设问题可能是数据框
  • 以前没有在突触中生成空表,我希望它是自动创建的

有人能帮我理解这个问题吗?

共有1个答案

赵智
2023-03-14

遵循以下步骤:

配置Azure存储帐户

spark.conf.set(fs.azure.account.key.<your_storage_account>.blob.core.windows.net, “<your_storage_account_access_key>”)

Azure Synapse configuration

Database = <Database_Name>
Server = <Server_Name>
User = <Database_Username>
Pass = <Database_Password>
JdbcPort =  "1433"
JdbcExtraOptions = "encrypt=true;trustServerCertificate=true;hostNameInCertificate=*.database.windows.net;loginTimeout=30;"
sqlUrl = f"jdbc:sqlserver://{Server}:{JdbcPort};database={Database};user={User};password={Pass};${JdbcExtraOptions}"

Azure数据湖第2代

tempDir = "abfss://<container>@<your_storage_account_name>.dfs.core.windows.net/<folder>"

Azure Synapse表

tableName = <your_sql_table>

从Azure Synapse读取数据

df = spark.read \
  .format("com.databricks.spark.sqldw") \
  .option("url", sqlUrl) \
  .option("tempDir", tempDir) \
  .option("forwardSparkAzureStorageCredentials", "true") \
  .option("dbTable", tableName) \
  .load()

参考:

如何连接到Azure Databricks中的Azure Synapse

 类似资料:
  • 使用第一个驱动程序(db2jcc.jar和db2jcc_license_cisuz.jar) 无法使用com.ibm.db2.jcc.db2driver建立到jdbc:db2:/host:446/database的连接([jcc][t4][2057][11264][3.69.24]应用程序服务器拒绝建立连接。试图访问数据库database,该数据库找不到或不支持事务。errorcode=-4499

  • 问题内容: 该问题重复了一些较早的问题,但此后情况可能已发生变化。 是否有官方支持从Node.js连接到SQL Server(例如,来自MS的官方库)?还是至少有一些维护良好的第三方库适合生产级应用程序? 我们通常使用ASP.NET MVC / SQL Server组合,但是目前我有一个Express / Node.js似乎更合适的任务(并且我想尝试一些新的东西),所以问题是我们是否可以依赖于No

  • 我正在使用XAMPP。我试图在网页上转储我的db_数据。错误消息是“调用未定义的函数mysql\u connect”。我应该导入一些文件吗? 或者我应该在代码中进行更改??

  • 问题内容: 我正在尝试从iPhone连接到远程mysql数据库。我搜索了许多网站,但没有找到任何帮助。如果有人为此工作,请发送解决方案。 问题答案: 假设您具有服务器端编程(例如PHP或Rails)的经验,则可以仅从URL内容创建NSArray,在其中建立与MySQL服务器的连接并以ASCII或XML格式打印所需的结果。 对帮助格式化服务器页面打印的结果也很有用:http : //develope

  • 我正在尝试从Spring Boot应用程序连接到mySQL数据库。然而,当我试图运行它时,它显示出错误。 我如何解决这个问题? 错误 从我的文件中添加代码片段 pom。xml 应用属性 堆栈跟踪 我还没有在sql中手动创建表,因为我认为spring.jpa.hibernate.ddl-Auto=date应该这样做

  • 我想使用Databricks notebook将数据从Azure Blob存储加载到Azure SQL数据库。有人能帮我做这件事吗