databricks - 无法使用 Databricks 列出 Azure 存储 Gen 2 文件

标签 databricks azure-databricks

我想知道我的 databricks 代码是否寻址了正确的位置,以及“贡献者”权限是否足以访问存储。

  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.net/'
  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

最佳答案

official Databricks docsContributor 是不够的 - 它应该是 Storage Blob Data XXX(其中 XXX 是 OwnerContributor阅读器, .... - see docs )

关于databricks - 无法使用 Databricks 列出 Azure 存储 Gen 2 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64934546/

相关文章:

json - 无法使用Spark读取json数据

pyspark - 如何在pyspark中加载databricks包dbutils

azure - 将 spark 数据帧从 azure databricks 写入 S3 会导致 java.lang.VerifyError : Bad type on operand stack error

apache-spark - 如何从 Databricks Notebook 中调用 Cluster API 并启动集群?

python - 如何在 Azure Databricks 笔记本中调试长时间运行的 python 命令?

apache-spark - 如何减少 Spark SQL 执行计划的总计时处理

python - Spark : Distribute low number of compute-intensive tasks via UDF

sql - 使用 Azure Databricks 和 Scala 从 Azure Sql 表中删除行

apache-spark - 如何仅在 Apache Spark SQL 中的某些列上按汇总分组?

Azure 数据工厂存储事件触发器文件路径