首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从数据库到蓝色突触的连接

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

Stack Overflow用户
提问于 2022-07-05 18:18:57
回答 1查看 508关注 0票数 0

我刚开始使用云服务,我正在尝试在databricks和azure之间建立联系。我在databricks中有生成数据帧的笔记本,我想在synapse中填充一个专用的SQL池。

在查看了microsoft 文档建议的操作和步骤之后,我遇到了这个错误。

代码

代码语言:javascript
运行
复制
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()

错误

代码语言:javascript
运行
复制
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

几点考虑

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

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

EN

回答 1

Stack Overflow用户

发布于 2022-07-07 06:46:21

遵循以下步骤

配置Azure存储帐户

代码语言:javascript
运行
复制
spark.conf.set(fs.azure.account.key.<your_storage_account>.blob.core.windows.net, “<your_storage_account_access_key>”)

Azure Synapse配置

代码语言:javascript
运行
复制
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数据湖Gen 2

代码语言:javascript
运行
复制
tempDir = "abfss://<container>@<your_storage_account_name>.dfs.core.windows.net/<folder>"

天青同步表

代码语言:javascript
运行
复制
tableName = <your_sql_table>

从Azure Synapse读取数据

代码语言:javascript
运行
复制
df = spark.read \
  .format("com.databricks.spark.sqldw") \
  .option("url", sqlUrl) \
  .option("tempDir", tempDir) \
  .option("forwardSparkAzureStorageCredentials", "true") \
  .option("dbTable", tableName) \
  .load()

参考:

如何连接到Azure数据库中的Azure Synapse

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72873898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档