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

数据库:无法访问挂载的blob

淳于俊迈
2023-03-14

我装载了一个 blob 存储容器(已确认的 blob 类型):

dbutils.fs.mount(
  source = "wasbs://mycontainer@myblobstorageaccount.blob.core.windows.net",
  mount_point = "/mnt/mymountpoint",
  extra_configs = {"fs.azure.sas.mycontainer.myblobstorageaccount.blob.core.windows.net":dbutils.secrets.get(scope = "mydatabricksscope", key = "nameofmysecretinkeyvault")})

挂载点已创建,我可以在数据砖中看到它。我在此容器中放置了一个 csv 文件,以及一个包含更多 csv 文件但无法访问任何内容的文件:

dbutils.fs.ls("/mnt/mymountpoint/")

找不到Java . io . filenotfoundexception:/文件

dbutils.fs.ls("wasbs://mycontainer@mystorageblob.blob.core.windows.net/")

shade.databricks.org.apache.hadoop.fs.azure。AzureException:shade.databricks.org.apache.hadoop.fs.azure。AzureException:帐户ownbackupsalesforcedev.blob.core.windows中的容器ownbackup salesforce devemastercnt。net找不到,我们无法使用匿名凭据创建它,并且在配置中找不到它们的凭据。

df = spark.read.format('csv').load('/mnt/mymountpoint/mycsv.csv', header="true")

分析异常:路径不存在:dbfs:/mnt/ownupsalesforcemnt/accounts.csv

我在databricks中重做了secret作用域,卸载并重新装载了几次,但仍然无法进入。有人能帮我吗?

共有1个答案

姬高澹
2023-03-14

首先在没有秘密范围的情况下尝试此操作。

请遵循以程:

    < li >当您尝试使用SAS(共享访问签名)进行装载时,请转到“存储”,然后单击边栏中的“共享访问签名”。< br >请确保检查允许的资源类型中的服务、容器和对象

>

  • 现在单击生成SAS并复制它并粘贴到您的代码中。

    dbutils.fs.mount( 源 = “wasbs://mycontainer@myblobstorageaccount.blob.core.windows.net”, mount_point = “/mnt/mymountpoint”, extra_configs = {“fs.azure.sas.mycontainer.myblobstorageaccount.blob.core.windows.net”: “SAS”)})

    请确保删除 ?字符,然后再将其添加到代码中。

    请根据我的报告检查这些输出:

    此外,还可以尝试使用存储帐户中的帐户密钥进行装载。

    语法:

    dbutils.fs.mount(source = "wasbs://<containername>@<storageaccountname>.blob.core.windows.net",
                     mount_point = "/mnt/<mountname>",
                     extra_configs = {'fs.azure.account.key.<container name>.<account name>.blob.core.windows.net': ‘account key’}
    )
    

    如果您在使用秘密范围后仍然面临相同的问题,可能是秘密范围的问题。

    请参阅此Microsoft文档以了解秘密范围。

    参考:

    https://learn.microsoft.com/en-us/azure/databricks/data/data-sources/azure/azure-storage#mount-azure-blob

  •  类似资料:
    • 一个ASP.NET web项目加载了解决方案,但我得到了这个错误

    • 嗨,我知道有几个线程对此,但没有一个解决方案似乎对我有效。 我有一个ASP.NET网站项目,我正试图加载并在Visual Studio中发布该项目。然而,当我加载项目时,我得到了错误: 到目前为止我所尝试的: 获得C://Windows/system32/inetsrv/config的所有权 在我的project_name.csproj文件中设置 返回到旧的team foundation serv

    • 我正在使用DBEAVER3.8.0,并试图建立到本地PostgreSQL数据库的一般连接。 若要查看所有数据库,请选中“显示非默认数据库”复选框。当我试图访问我的一个数据库的架构时,我得到了错误

    • 安装Visual Studio2012并打开解决方案后,在此表单中出现一系列错误: Web应用程序项目Foo配置为使用IIS。 无法访问IIS元数据库。您没有足够的权限访问计算机上的IIS网站。 我为我们的每个web应用程序都得到了这一点。 我尝试过的事情: 以管理员身份运行Visual Studio 正在运行aspnet_regiis.exe-ga MyUserName 正在运行aspnet_r

    • 我使用启动了mongo,但是我得到了如下所示的错误消息。 我试图使用,但得到如下所示的错误消息。 但是当我尝试时,我可以在集合中显示用户,而不会出现任何错误消息。

    • dockerfile: docker撰写文件: 应用程序属性文件: 当我运行docker-comush up时,它将创建一个数据库容器和一个连接到数据库容器的应用程序容器。 但是spring应用程序容器在启动过程中遇到了一些错误: org.postgresql.util.PSQL异常:连接到localhost:5432被拒绝。检查主机名和端口是否正确,邮政局长是否接受TCP/IP连接。 显示数据库