无法从Azure/databricks访问azure容器

问题描述 投票:0回答:2

我无法从 Azure/Databricks 访问 Azure 容器。 我按照这个 tuto 的说明进行操作,因此我开始创建容器并生成 sas。 然后在 databricks 笔记本上我发出了以下命令

dbutils.fs.mount( source = endpoint_source, mount_point = mountPoint_folder, extra_configs = {config : sas})

我将

endppoint_source
mountPoint_folder
sas
替换为以下

container_name = "containertobesharedwithdatabricks"
storage_account_name = "atabricksstorageaccount"
storage_account_url = storage_account_name + ".blob.core.windows.net"  
sas = "?sv=2021-06-08&ss=bfqt&srt=o&sp=rwdlacupiytfx&se=..."
endpoint_source = "wasbs://"+ storage_account_url + "/" + container_name  
mountPoint_folder = "/mnt/projet8"
config = "fs.azure.sas."+ container_name + "."+ storage_account_url

但我以以下例外结束:

shaded.databricks.org.apache.hadoop.fs.azure.AzureException: shaded.databricks.org.apache.hadoop.fs.azure.AzureException: Container $root in account atabricksstorageaccount.blob.core.windows.net not found, and we can't create it using anoynomous credentials, and no credentials found for them in the configuration.

我不明白为什么 databricks 找不到根容器。 任何帮助将不胜感激。预先感谢。

从该捕获中可以看出,存储帐户和文件夹存在,所以我很困惑。

enter image description here

azure-blob-storage azure-databricks mount
2个回答
0
投票
  • 使用与你相同的方法,我得到了同样的错误:

enter image description here

  • 使用以下代码,我能够成功挂载。将 endpoint_source 值更改为格式
    wasbs://<container-name>@<storage-account-name>.blob.core.windows.net
    .
endpoint_source = 'wasbs://[email protected]'
mp = '/mnt/repro'
config = "fs.azure.sas.data.blb2301.blob.core.windows.net"
sas = "<sas>"

dbutils.fs.mount( source = endpoint_source, mount_point = mp, extra_configs = {config : sas})

enter image description here


0
投票

我的错...,我在container_name和storage_account_url之间放了一个“/”而不是“@”并颠倒了顺序,所以正确的语法是:

endpoint_source = "wasbs://"+ container_name + "@" + storage_account_url
© www.soinside.com 2019 - 2024. All rights reserved.