通过 Azure PowerShell cmdlet 和 REST API 自动执行库管理过程

你可能希望在不进入 Synapse Analytics UI 页面的情况下管理无服务器 Apache Spark 池的库。 例如,你可能发现:

你开发了一个自定义包,现在想要将它上传到工作区并在 Spark 池中使用它。 另外,你希望在不访问包管理 UI 的情况下通过本地工具完成这些步骤。

本文提供一般性的指南以帮助你通过 Azure PowerShell cmdlet 或 REST API 管理库。

通过 Azure PowerShell cmdlet 管理包

添加新库

  1. New-AzSynapseWorkspacePackage 命令可用于将新库上传到工作区。

    New-AzSynapseWorkspacePackage -WorkspaceName ContosoWorkspace -Package ".\ContosoPackage.whl"
    
  2. New-AzSynapseWorkspacePackageUpdate-AzSynapseSparkPool 命令的组合可用于将新库上传到工作区,以及将库附加到 Spark 池。

    $package = New-AzSynapseWorkspacePackage -WorkspaceName ContosoWorkspace -Package ".\ContosoPackage.whl"
    Update-AzSynapseSparkPool -WorkspaceName ContosoWorkspace -Name ContosoSparkPool -PackageAction Add -Package $package
    
  3. 如果你要将现有工作区库附加到 Spark 池,请参阅 Get-AzSynapseWorkspacePackageUpdate-AzSynapseSparkPool 的命令组合。

    $packages = Get-AzSynapseWorkspacePackage -WorkspaceName ContosoWorkspace
    Update-AzSynapseSparkPool -WorkspaceName ContosoWorkspace -Name ContosoSparkPool -PackageAction Add -Package $packages
    

删除库

  1. 若要从 Spark 池中删除已安装的包,请参阅 Get-AzSynapseWorkspacePackageUpdate-AzSynapseSparkPool 的命令组合。

    $package = Get-AzSynapseWorkspacePackage -WorkspaceName ContosoWorkspace -Name ContosoPackage
    Update-AzSynapseSparkPool -WorkspaceName ContosoWorkspace -Name ContosoSparkPool -PackageAction Remove -Package $package
    
  2. 还可以通过调用 Get-AzSynapseSparkPoolUpdate-AzSynapseSparkPool 命令检索 Spark 池,以及从池中删除所有附加的工作区库。

    $pool = Get-AzSynapseSparkPool -ResourceGroupName ContosoResourceGroup -WorkspaceName ContosoWorkspace -Name ContosoSparkPool
    $pool | Update-AzSynapseSparkPool -PackageAction Remove -Package $pool.WorkspacePackages
    

有关更多 Azure PowerShell cmdlet 功能,请参阅适用于 Azure Synapse Analytics 的 Azure PowerShell cmdlet

通过 REST API 管理包

管理工作区包

借助 REST API 的功能,可以添加/删除包,或列出工作区的所有已上传文件。 请参阅工作区库 API 概述查看所有受支持的 API。

管理 Spark 池包

可以利用 Spark 池 REST API 将自定义或开源库附加到 Spark 池,或从池中删除它们。

  1. 对于自定义库,请将自定义文件列表指定为请求正文中的 customLibraries 属性。

    "customLibraries": [
        {
            "name": "samplejartestfile.jar",
            "path": "<workspace-name>/libraries/<jar-name>.jar",
            "containerName": "prep",
            "uploadedTimestamp": "1970-01-01T00:00:00Z",
            "type": "jar"
        }
    ]
    
  2. 还可以通过在请求正文中指定 libraryRequirements 属性来更新 Spark 池库。

    "libraryRequirements": {
          "content": "",
          "filename": "requirements.txt"
    }
    

后续步骤