首页 > 解决方案 > 在 azure devops 管道中找不到 Databricks 命令

问题描述

我正在尝试通过 Azure Devops 管道将文件复制到 Azure Databricks DBFS。以下是我正在使用的 yml 文件的片段:

stages:
- stage: MYBuild
  displayName: "My Build"
  jobs:
    - job: BuildwhlAndRunPytest
      pool:
        vmImage: 'ubuntu-16.04'

      steps:
      - task: UsePythonVersion@0
        displayName: 'Use Python 3.7'
        inputs:
          versionSpec: '3.7'
          addToPath: true
          architecture: 'x64'

      - script: |
          pip install pytest requests setuptools wheel pytest-cov
          pip install -U databricks-connect==7.3.*
        displayName: 'Load Python Dependencies'

      - checkout: self
        persistCredentials: true
        clean: true

      - script: |
          echo "y
          $(databricks-host)
          $(databricks-token)
          $(databricks-cluster)
          $(databricks-org-id)
          8787" | databricks-connect configure
          databricks-connect test
        env:
          databricks-token: $(databricks-token)
        displayName: 'Configure DBConnect'

      - script: |
          databricks fs cp test-proj/pyspark-lib/configs/config.ini dbfs:/configs/test-proj/config.ini

在调用 databricks fs cp 命令的阶段出现以下错误:

/home/vsts/work/_temp/2278f7d5-1d96-4c4e-a501-77c07419773b.sh: line 7: databricks: command not found

但是,当我运行时databricks-connect test,它能够成功执行命令。如果我在某处遗漏了一些步骤,请提供帮助。

标签: azureazure-devopsdatabricksazure-databricks

解决方案


databricks命令位于databricks-cli包中,而不是在 中databricks-connect,因此您需要更改pip install命令。

此外,对于databricks命令,您只需设置环境变量DATABRICKS_HOSTDATABRICKS_TOKEN它就会起作用,如下所示:

- script: |
    pip install pytest requests setuptools wheel
    pip install -U databricks-cli
  displayName: 'Load Python Dependencies'

- script: |
    databricks fs cp ... dbfs:/...
  env:
    DATABRICKS_HOST: $(DATABRICKS_HOST)
    DATABRICKS_TOKEN: $(DATABRICKS_TOKEN)
  displayName: 'Copy artifacts'

PS 这是一个关于如何在 Databricks + 笔记本上进行 CI/CD 的示例您也可能对cicd-templates 项目感兴趣。


推荐阅读