apache-spark - 无法在数据块中为 adls gen 2 创建挂载点
问题描述
我正在尝试使用 databricks 中的密钥库创建指向 ADLS Gen2 的挂载点,但是由于遇到一些错误,我无法这样做。我有贡献者访问权限,我尝试使用存储 Blob 数据贡献者和贡献者对 SPN 的访问权限,但我仍然无法将其创建为挂载点。
我请求一些帮助
configs= {"fs.azure.account.auth.type":"OAuth",
"fs.azure.account.oauth.provider.type":"org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider",
"fs.azure.account.oauth2.client.id":"abcdefgh",
"fs.azure.account.oauth2.client.secret":dbutils.secrets.get(scope="myscope",key="mykey"),
"fs.azure.account.oauth2.client.endpoint":"https://login.microsoftonline.com/tenantid/oauth2/token",
"fs.azure.createRemoteFileSystemDuringInitialization": "true"}
dbutils.fs.mount(
source= "abfss://cont1@storageaccount.dfs.core.windows.net/",
mount_point="/mnt/cont1",
extra_configs=configs)
我得到的错误是调用 o280.mount 时发生错误。: HEAD https://storageaccount.dfs.core.windows.net/cont1?resource=filesystem&timeout=90 StatusCode=403 StatusDescription=此请求无权执行此操作。
解决方案
执行将应用程序分配给角色中的步骤时,请确保您的用户帐户具有分配给它的存储 Blob 数据参与者角色。
重现:我已向服务主体提供所有者权限并尝试运行“<code>dbutils.fs.ls("mnt/azure/")”,返回与上述相同的错误消息。
解决方案:现在将存储 Blob 数据参与者角色分配给服务主体。
最后,在将存储 Blob 数据参与者角色分配给服务主体后,能够获得没有任何错误消息的输出。
有关更多详细信息,请参阅“<a href="https://docs.microsoft.com/en-us/azure/storage/blobs/data-lake-storage-use-databricks-spark" rel="nofollow noreferrer">教程:Azure Data Lake Storage Gen2、Azure Databricks 和 Spark”。
推荐阅读
- php - php从输入插入mysql变量值
- javascript - 如何在 Azure 构建管道中打包 JS 应用程序并保存在单独的 C# 存储库中
- ios - 将自定义阴影添加到 TabBar 图层,同时删除阴影图像
- tsql - TSQL - 转换和更新浮点列的问题
- typo3 - 如何更新 Typ3 版本 8 至 9 上的(cookieconsent2、crawler、realurl)扩展
- dictionary - 结果中嵌套项目的Ansible循环
- sas - SAS EG 迄今为止在不同的机器上获得不同的结果 - 或者 SAS 语言环境设置在哪里?
- c# - C# IQueryableto 到 IEnumerable 使用 Linq 表达式和类
- gnuplot - Xtics 与 GnuPlot 和大量数据点靠得太近
- assembly - 有没有办法在不使用进位标志或 RRX 的情况下在 ARM 汇编语言中对 32 位二进制整数进行位反转?