我们正在从 blob 存储迁移到 ADLS Gen 2,我们希望测试从 DataBricks 对 Data Lake 的访问。我创建了一个服务主体,该服务主体对数据湖具有 Blob 存储读取器和 Blob 存储参与者访问权限。
我的笔记本设置了以下火花配置:
spark.conf.set("fs.azure.account.auth.type","OAuth")
spark.conf.set("fs.azure.account.oauth.provider.type","org.apache.hadoop.fs.azurebfs.oauth2.ClientCredsTokenProvider")
spark.conf.set("fs.azure.account.oauth2.client.id","<clientId")
spark.conf.set("fs.azure.account.oauth2.client.secret","<secret>")
spark.conf.set("fs.azure.account.oauth2.client.endpoint","https://login.microsoftonline.com/<endpoint>/oauth2/token")
//I replaced the values in my notebook with correct values from my service principal
当我运行下面的代码时,目录的内容被正确地显示出来:
dbutils.fs.ls("abfss://ado-raw@<storage account name>.dfs.core.windows.net")
我可以从我的数据湖中读取一个小文本文件,该文件只有 3 个字节,但是当我尝试显示其内容时,单元格卡在运行命令时,没有任何反应。
你认为问题是什么?我该如何解决?
先谢谢你
问题是私有和公共子网被错误删除,然后使用不同的IP范围重新创建。它们需要位于与管理子网相同的范围内,否则为存储帐户设置的专用endpoint将无法工作。