快速入门:在 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. 选择“+ 生成/导入”。

    显示“Azure 密钥保管库机密生成或导入”选项卡的屏幕截图。

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

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

    显示 Azure 访问密钥和连接字符串值屏幕的屏幕截图。

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

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

    注意

    选择适当的选项进行复制

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

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

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

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

  10. 选择“创建” 。

    显示 Azure 机密创建屏幕的屏幕截图。

提示

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

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

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

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

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

  1. 打开 Azure 门户

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

    可展开的屏幕截图,其中显示了如何在 Azure 门户中搜索和选择存储帐户服务。

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

    可展开的屏幕截图,其中显示了对 Azure Data Lake Storage (ADLS) Gen 2 存储帐户的选择。

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

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

    显示 Azure 访问密钥屏幕的屏幕截图。

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

  7. 选择“下一步”

    显示了“添加角色分配”屏幕的屏幕截图。

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

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

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

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

  12. 选择适当的用户标识

  13. 选择“下一步”

    显示了“添加角色分配”屏幕的“成员”选项卡的屏幕截图。

  14. 选择“查看 + 分配”

    显示了“添加角色分配”屏幕的“查看并分配”选项卡的屏幕截图。

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

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

注意

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

确保 Spark 作业的资源访问

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

Spark 池 支持的标识 默认标识
无服务器 Spark 计算 用户标识,附加到工作区的用户分配的托管标识 用户标识
附加的 Synapse Spark 池 用户标识,附加到所附加的 Synapse Spark 池的用户分配的托管标识,所附加的 Synapse Spark 池的系统分配的托管标识 所附加的 Synapse Spark 池的系统分配的托管标识

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

后续步骤