快速入门:在 Azure 机器学习中使用 Apache Spark 进行交互式数据整理

若要处理交互式 Azure 机器学习笔记本数据整理,可以使用 Azure 机器学习与 Azure Synapse Analytics 的集成轻松访问 Apache Spark 框架。 进行这种访问可以实现 Azure 机器学习笔记本交互式数据整理。

本快速入门指南介绍如何使用 Azure 机器学习无服务器 Spark 计算、Azure Data Lake Storage (ADLS) Gen 2 存储帐户和用户标识传递执行交互式数据整理。

先决条件

将 Azure 存储帐户凭据作为机密存储在 Azure 密钥保管库

要使用 Azure 门户用户界面将 Azure 存储帐户凭据作为机密存储在 Azure 密钥保管库中:

  1. 在 Azure 门户中,导航到 Azure Key Vault。

  2. 在左窗格中选择“机密”。

  3. 选择“+ 生成/导入”。

    Screenshot showing the Azure Key Vault Secrets Generate Or Import tab.

  4. 在“创建机密”屏幕上,输入要创建的机密的名称。

  5. 在 Azure 门户中导航到 Azure Blob 存储帐户,如下图所示:

    Screenshot showing the Azure access key and connection string values screen.

  6. 从“Azure Blob 存储帐户”页面左侧面板中选择“访问密钥”。

  7. 选择“密钥 1”旁边的“显示”,然后选择“复制到剪贴板”以获取存储帐户访问密钥。

    注意

    选择适当的选项进行复制

    • Azure Blob 存储容器共享访问签名 (SAS) 令牌
    • Azure Data Lake Storage (ADLS) Gen 2 存储帐户服务主体凭据
      • 租户 ID
      • 客户端 ID 和
      • secret

    创建 Azure 密钥保管库机密时各自的用户界面上。

  8. 导航回“创建机密”屏幕。

  9. 在“机密值”文本框中,输入 Azure 存储帐户的访问密钥凭据,该凭据在前面的步骤中已复制到剪贴板。

  10. 选择创建

    Screenshot showing the Azure secret creation screen.

提示

Azure CLI适用于 Python 的 Azure 密钥保管库机密客户端库也可以创建 Azure 密钥保管库机密。

在 Azure 存储帐户中添加角色分配

在开始进行交互式数据整理之前,必须确保输入和输出数据路径可访问。 首先,对于

  • 笔记本会话登录用户的用户标识或
  • 服务主体

将“读取者”和“存储 Blob 数据读取者”角色分配给已登录用户的用户标识。 但在某些情况下,我们可能需要将整理的数据写回到 Azure 存储帐户。 “读取者”角色和“存储 Blob 数据读取者”角色提供对用户标识或服务主体的只读访问权限。 若要启用读取和写入访问权限,请将“参与者”角色和“存储 Blob 数据参与者”角色分配给用户标识或服务主体。 要为用户标识分配适当的角色,请执行以下操作:

  1. 打开 Azure 门户

  2. 搜索并选择“存储帐户”服务。

    Expandable screenshot showing Storage accounts service search and selection, in Azure portal.

  3. 在“存储帐户”页面上,从列表中选择 Azure Data Lake Storage (ADLS) Gen 2 存储帐户。 此时将打开显示了存储帐户概述的页面。

    Expandable screenshot showing selection of the Azure Data Lake Storage (ADLS) Gen 2 storage account Storage account.

  4. 在左侧窗格中选择“访问控制(IAM)”

  5. 选择“添加角色分配”

    Screenshot showing the Azure access keys screen.

  6. 找到并选择角色“存储 Blob 数据参与者”

  7. 选择“下一步”

    Screenshot showing the Azure add role assignment screen.

  8. 选择“用户、组或服务主体”。

  9. 选择“+ 选择成员”。

  10. 在“选择”下面搜索用户标识

  11. 从列表中选择该用户标识,使其显示在“所选成员”下

  12. 选择适当的用户标识

  13. 选择“下一步”

    Screenshot showing the Azure add role assignment screen Members tab.

  14. 选择“查看 + 分配”

    Screenshot showing the Azure add role assignment screen review and assign tab.

  15. 对“参与者”角色分配重复执行步骤 2-13。

为用户标识分配适当的角色后,Azure 存储帐户中的数据应该可供访问。

注意

如果附加的 Synapse Spark 池指向关联了托管虚拟网络的 Azure Synapse 工作区中的 Synapse Spark 池,则应配置存储帐户的托管专用终结点,以确保能够访问数据。

确保 Spark 作业的资源访问

Spark 作业可以使用托管标识或用户标识传递来访问数据和其他资源。 下表总结了在使用 Azure 机器学习无服务器 Spark 计算和附加的 Synapse Spark 池时进行资源访问的不同机制。

Spark 池 支持的标识 默认标识
无服务器 Spark 计算 用户标识和托管标识 用户标识
附加的 Synapse Spark 池 用户标识和托管标识 托管标识 - 附加的 Synapse Spark 池的计算标识

如果 CLI 或 SDK 代码定义了一个使用托管标识的选项,则 Azure 机器学习无服务器 Spark 计算会依赖附加到工作区的用户分配的托管标识。 可以使用 Azure 机器学习 CLI v2 或 ARMClient 将用户分配的托管标识附加到现有的 Azure 机器学习工作区。

后续步骤