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

无法列出带有数据砖的 Azure 存储第 2 代文件

方波娃
2023-03-14

我想知道我的数据块代码是否寻址到正确的位置,以及“contributor”权限是否足以访问存储。

  1. 我有Azure Storage Gen 2和名为staging的容器。(Azure门户中的Url为https://datalaketest123.blob.core.windows.net/staging)
  2. 我已使用Azure Databricks安装了Azure Storage Gen 2
  3. 我已经配置了直通,并假设我可以通过AD用户访问存储。(供款人权利)
  4. 我有变量:source=“abfss://”in_fileSystemName“@”storageAccountName“.dfs.core.windows。净/’
  5. 我现在尝试使用命令dbutils.fs.ls(source)列出文件系统

我得到错误:

ET https://datalaketest123.dfs.core.windows.net/staging? 
resource=filesystem&maxResults=500&timeout=90&recursive=false
---------------------------------------------------------------------------
ExecutionError                            Traceback (most recent call last)
<command-1012822525241408> in <module>
 27 # COMMAND ----------
 28 source = 'abfss://' + in_fileSystemName + '@' + storageAccountName + '.dfs.core.windows.net/'
---> 29 dbutils.fs.ls(source)
 30 
 31 # COMMAND ----------

/local_disk0/tmp/1235891082005-0/dbutils.py in f_with_exception_handling(*args, **kwargs)
    312                     exc.__context__ = None
    313                     exc.__cause__ = None
--> 314                     raise exc
    315             return f_with_exception_handling
    316 

ExecutionError: An error occurred while calling z:com.databricks.backend.daemon.dbutils.FSUtils.ls.
: GET https://datalaketest123.dfs.core.windows.net/staging? 
resource=filesystem&maxResults=500&timeout=90&recursive=false
StatusCode=403
StatusDescription=This request is not authorized to perform this operation using this permission.
ErrorCode=AuthorizationPermissionMismatch

共有2个答案

公羊浩阔
2023-03-14

执行“将应用程序分配给角色”中的步骤时,请确保您的用户帐户已分配了存储Blob数据参与者角色。

重述:我已经向服务主体提供了所有者权限,并尝试运行“dbutils.fs.ls(“mnt/azure/”)”,返回了与上面相同的错误消息。

解决方案:现在已将“存储 Blob 数据参与者”角色分配给服务主体。

最后,能够在将存储 Blob 数据参与者角色分配给服务主体后获取输出,而不会出现任何错误消息。

参考:“教程:Azure Data Lake Storage Gen2,Azure Databricks

苏野
2023-03-14

根据官方数据块文档,仅< code >贡献者是不够的,它应该是< code >存储Blob数据XXX(其中XXX是< code >所有者 、< code >贡献者 、< code >读者,....-参见文档)

 类似资料:
  • 我在Azure DataBricks中使用装载路径创建了一个非托管表,如下所示: 挂载路径的来源是存储在ADLS Gen2中的拼花文件。我看到如果底层数据在ADLS Gen 2 blob存储路径中发生变化,它不会反映在ADB中创建的非托管表中。此ADB表仍然保存创建表时blob存储中可用的数据。有什么方法可以将最新数据从blob存储放入ADB中的表中吗?

  • 我正在尝试列出 Azure 容器中的所有文件,但当我使用方法 .listBlobs( ) 时,我无法获取我的 Blob 项目列表。 我收到错误:java.lang.NoSuchMethodError:reactor.core.publisher.Mono.mapNotNull(Ljava/util/function/function;)L反应器/核心/发布器/Mono; 我的BlobContain

  • 我可以通过azure application insight跟踪我的应用程序日志文件,还可以导出xls表http://dailydotnettips.com/2015/12/04/export-application-insights-data-to-excel-its-just-a-single-click/,但我需要将我的所有日志文件存储到azure data lake storage中,以便

  • 我正在使用Azure数据库。使用Microsoft学习网站上指定的文档,我设法将BLOB存储(ADLS Gen2)挂载到我的数据库。 但是,当我尝试列出已装入的存储的内容时,我收到以下错误: 我已经检查了权限,我的Service主体被分配了角色“STORAGE BLOB DATA CONTRIBUTOR”,它允许对我的存储容器进行R/W访问。 任何人都知道我错过了哪个部分来使它工作?将不胜感激。

  • 问题内容: 如何查看S3中的存储桶中的内容?(即是)? 执行以下操作: 返回: 我如何看其内容? 问题答案: 查看内容的一种方法是:

  • 本文向大家介绍android数据存储之文件存储方法,包括了android数据存储之文件存储方法的使用技巧和注意事项,需要的朋友参考一下 文件存储是 Android 中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,所有数据都是原封不动的保存到文件当中的。 概述 文件存取的核心就是输入流和输出流。 Android文件的操作模式 文件的相关操作方法 文件读写的实现 openFileOu