我正在尝试使用Spark API建立与ADLS的连接。我真的很陌生。我阅读了说明可以使用以下代码建立连接的文档:
spark.conf.set("fs.adl.oauth2.access.token.provider.type", "ClientCredential")
spark.conf.set("fs.adl.oauth2.client.id", "<application-id>")
spark.conf.set("fs.adl.oauth2.credential", dbutils.secrets.get(scope = "<scope-name>", key = "<key-name-for-service-credential>"))
spark.conf.set("fs.adl.oauth2.refresh.url", "https://login.microsoftonline.com/<directory-id>/oauth2/token")
我可以在Azure门户/ Azure存储资源管理器中看到我对所需的ADLS文件夹具有读/写/执行权限,但是我不知道在哪里可以找到application-id
,scope-name
和[C0 ]。预先感谢。
有两种访问Azure Data Lake Storage Gen1的方法:
先决条件:
您需要创建并授予服务主体权限。
key-name-for-service-credential
。
请注意以下属性:
application-id:唯一标识客户端应用程序的ID。
directory-id:唯一标识Azure AD实例的ID。
service-credential:应用程序用来证明其身份的字符串。
注册服务主体,在Azure Data Lake Storage Gen1帐户上授予正确的Create an Azure AD application and service principal that can access resources,例如贡献者。
Method1:装载Azure Data Lake Storage Gen1资源或文件夹
Method2:使用服务主体和OAuth 2.0通过Spark API直接访问
方法3:使用服务主体直接使用Spark API进行访问,并使用带有dbutils.secrets.get(scope =“”,key =“”)的OAuth 2.0检索已存储为秘密范围内的秘密的存储帐户访问密钥。
希望这会有所帮助。如果您还有其他疑问,请告诉我们。
请在有助于您的帖子上单击“ 标记为答案”和Upvote,这可能对其他社区成员有所帮助。