Azure Synapse Spark池添加whl包批量操作报错求助
问题解决办法
首先明确:az synapse spark pool update命令支持WHL包——你单个包能正常执行的情况已经证明了这一点,问题出在PowerShell的变量传递方式上。
错误原因
你把多个包名放在一个字符串变量$new_package_names里,传递给--package参数时,PowerShell会将整个字符串作为单个参数传给Azure CLI,导致Azure把这一串文件名当成了一个不存在的包,因此报错“LibraryDoesNotExistInWorkspace”。
解决方案
以下几种方式都能解决这个问题:
1. 直接在命令中列出所有包名
不用变量,直接把每个WHL包名作为独立参数传入:
az synapse spark pool update --name $pool_name --workspace-name $workspace_name --resource-group $resource_group --package-action Add --package PACKAGE1-1.0.1-py3-none-any.whl PACKAGE2-1.0.6.3-py3-none-any.whl PACKAGE3-1.0.0-py3-none-any.whl PACKAGE4-1.0.1-py3-none-any.whl
2. 使用PowerShell数组存储包名
把包名存为数组变量,CLI会自动识别每个元素为独立参数:
$new_package_names = @( "PACKAGE1-1.0.1-py3-none-any.whl", "PACKAGE2-1.0.6.3-py3-none-any.whl", "PACKAGE3-1.0.0-py3-none-any.whl", "PACKAGE4-1.0.1-py3-none-any.whl" ) az synapse spark pool update --name $pool_name --workspace-name $workspace_name --resource-group $resource_group --package-action Add --package $new_package_names
3. 拆分字符串变量为数组
如果已经有了空格分隔的字符串变量,可以先拆分成数组再传递:
$new_package_names = "PACKAGE1-1.0.1-py3-none-any.whl PACKAGE2-1.0.6.3-py3-none-any.whl PACKAGE3-1.0.0-py3-none-any.whl PACKAGE4-1.0.1-py3-none-any.whl" $package_array = $new_package_names -split " " az synapse spark pool update --name $pool_name --workspace-name $workspace_name --resource-group $resource_group --package-action Add --package $package_array
这些方法都能让CLI正确识别每个WHL包为独立的参数,避免把它们当成单个包处理。
内容的提问来源于stack exchange,提问作者Cribber
相关产品推荐
相关产品推荐

