【问题标题】:Connect to ADLS with Spark API in Databricks在 Databricks 中使用 Spark API 连接到 ADLS
【发布时间】:2020-03-23 17:59:40
【问题描述】:

我正在尝试使用 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 和 @ 987654324@.

【问题讨论】:

    标签: pyspark databricks azure-data-lake azure-databricks


    【解决方案1】:

    有两种访问 Azure Data Lake Storage Gen1 的方法:

    1. 使用 服务主体和 OAuth 2.0。
    2. 直接使用服务主体。

    先决条件:

    您需要创建并授予服务主体权限。

    Create an Azure AD application and service principal that can access resources。

    注意以下属性:

    application-id:唯一标识客户端应用程序的 ID。

    directory-id:唯一标识 Azure AD 实例的 ID。

    service-credential:应用程序用来证明其身份的字符串。

    注册服务主体,在 Azure Data Lake Storage Gen1 帐户上授予正确的 role assignment,例如 Contributor。

    方法一:装载 Azure Data Lake Storage Gen1 资源或文件夹

    方法 2: 使用服务主体和 OAuth 2.0 直接通过 Spark API 访问

    方法 3:使用服务主体和 OAuth 2.0 直接使用 Spark API 访问 dbutils.secrets.get(scope = "", key = "") 检索已作为机密存储在机密中的存储帐户访问密钥范围。

    参考:Databricks - Azure Data Lake Storage Gen1。

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 2021-05-31
      • 2019-07-27
      相关资源
      最近更新 更多