首页 > 解决方案 > 在 databricks 笔记本中找不到导入库

问题描述

使用 Azure Devops 管道任务,我正在导入 azure.databricks.cicd.tools 库并安装 azure-identity 和 azure-keyvault-secrets。当我使用不记名令牌和集群 ID 将这些库添加到集群时,这些库可以很好地安装到集群中,但是当我运行笔记本时,它显示未找到导入模块。你能帮我看看我哪里出错了吗?

    - task: AzurePowerShell@5
      inputs:
        azureSubscription: xxxxx
        ScriptType: InlineScript
        Inline: |
          Install-Module -Name azure.databricks.cicd.tools -Force -Scope CurrentUser
        azurePowerShellVersion: LatestVersion   

    - task: AzurePowerShell@5
      inputs:
        azureSubscription: xxxxx
        ScriptType: InlineScript
        Inline: |
          Import-Module -Name azure.databricks.cicd.tools
          Add-DatabricksLibrary -BearerToken $(az-bearer-token) -Region $(az-region) -LibraryType "pypi" -LibrarySettings 'azure-identity' -ClusterId 'xxxxxx'
          Add-DatabricksLibrary -BearerToken $(az-bearer-token) -Region $(az-region) -LibraryType "pypi" -LibrarySettings 'azure.keyvault.secrets' -ClusterId 'xxxxx'
        azurePowerShellVersion: LatestVersion

其次是 .....

   - task: configuredatabricks@0
   - task: DataThirstLtd.databricksDeployScriptsTasks.databricksDeployScriptsTask.databricksDeployScripts@0
   - task: executenotebook@0 

库已成功安装到集群

Databricks notebook:
from azure.identity import ClientSecretCredential
from azure.keyvault.secrets import SecretClient
credential = ClientSecretCredential(directory_id, sp_client_id, sp_client_secret, 'login.microsoftonline.com')

Error message:

ImportError: No module named azure.identity

标签: azureazure-pipelinesazure-databricks

解决方案


库的安装不是同步的-当您执行Add-DatabricksLibrary命令时,它会调用Libraries REST APIinstall的端点,并且文档说:

安装是异步的 - 它在请求后在后台完成。

您可以使用集群状态 REST API来检查所有库是否都有INSTALLED状态,然后才触发笔记本。(我在库中没有看到类似的功能azure.databricks.cicd.tools


推荐阅读