【发布时间】:2021-07-01 15:33:30
【问题描述】:
我在通过 SSMS 连接到我的火花池集群时遇到问题。 在 Synapse Studio 中,我执行以下步骤:
- 首先,我使用 sql 在 Apache Spark 集群上创建一个数据库: %%sql
创建数据库测试
-
接下来,我使用 pyspark 创建一个指向带有镶木地板文件的 ADLS2 文件夹的表: spark.sql("如果不存在则创建表 test.testparquet 使用 parquet LOCATION 'abfss://test@test.test.core.windows.net/test/output'")
-
数据库是通过 Synapse Studio 创建的,没有任何问题。
-
然后我转到 SSMS 并将按需 sql 实例放入浏览器:
Azure Synapse On Demand SqlInstance
- 然后当我去查询 spark 数据库和表时,我得到以下错误:
此功能已经使用了几个月,所以我不知道是什么原因造成的。 我尝试通过在 spark 数据库中创建范围凭据来解决此问题,但是当我删除重新创建数据源时,出现以下错误:
消息 15875,第 16 级,状态 8,第 2 行 复制数据库不允许操作 DROP EXTERNAL DATA SOURCE。 消息 102,第 15 级,状态 1,第 6 行 'sqlondemand' 附近的语法不正确。
为什么我不能再通过 SSMS 访问我的 ADLS 2 parquet 文件?
【问题讨论】:
-
是否使用 SAS 令牌创建了基础数据库范围凭据?也许它过期了?
-
奇怪的是,它在创建 spark 数据库和表时不需要范围凭据,我只是能够连接到按需实例并查询表。
-
也许我看错了 - 但如果您正在创建外部资源,那么您需要一个 SCOPED CREDENTIAL。
-
对不起,我应该在我的帖子中更清楚。我的错。这是发生了什么 1) 当我第一次设置它时,我通过突触工作室创建了 spark 数据库和表。要通过 synapse Studio 设置数据库和表,它不需要事先创建任何范围凭据。我能够使用 sqlondemand 链接通过 SSMS 连接到我的 spark 表。一些外部源是如何通过突触工作室创建的。我能够通过 ssms 访问我的 spark 数据库和表,几个月来没有问题,现在我收到了这个凭据错误。
-
感谢您的澄清,很遗憾我没有任何指导给您。您可能需要提交支持票。
标签: apache-spark azure-synapse