CLI de trabalho (herdada)

Importante

Esta documentação foi desativada e pode não estar atualizada.

Essas informações se aplicam às versões herdadas da CLI do Databricks 0.18 e anteriores. O Databricks recomenda que você use a versão 0.205 da CLI do Databricks mais recente ou superior. Consulte O que é a CLI do Databricks?. Para localizar sua versão da CLI do Databricks, execute databricks -v.

Para migrar da CLI do Databricks versão 0.18 ou inferior para a CLI do Databricks versão 0.205 ou superior, consulte Migração da CLI do Databricks.

Para executar subcomandos da CLI de trabalhos do Databricks anexe-os a databricks jobs. Para executar subcomandos da CLI de execuções de trabalhos do Databricks, anexe-os a databricks runs. Para subcomandos do trabalho Execuções de CLI do Databricks, consulte Execuções de CLI (herdado). Juntos, esses subcomandos chamam a API de Trabalhos e a API de Trabalhos 2.0.

Importante

A CLI de trabalhos do Databricks oferece suporte a chamadas para duas versões da API REST de Trabalhos do Databricks: versões 2.1 e 2.0. A versão 2.1 adiciona suporte para orquestração de trabalhos com várias tarefas; confira Agendar e orquestrar fluxos de trabalho e Atualizações da API de trabalhos 2.0 para 2.1. O Databricks recomenda que se chame a versão 2.1, a menos que haja scripts herdados que dependam da versão 2.0 e que não possam ser migrados.

A menos que especificado de outra forma, os comportamentos programáticos descritos neste artigo aplicam-se igualmente às versões 2.1 e 2.0.

Requisitos de chamada da API REST de Trabalhos 2.1

Para configurar e usar a CLI de trabalhos do Databricks (e a CLI de execuções de trabalhos) para chamar a API REST de Trabalhos 2.1, faça o seguinte:

  1. Atualize a CLI para a versão 0.16.0 ou superior.

  2. Realize um dos seguintes procedimentos:

    • Execute o comando databricks jobs configure --version=2.1. Isso adiciona a configuração jobs-api-version = 2.1 ao arquivo ~/.databrickscfg no Unix, Linux ou macOS, ou %USERPROFILE%\.databrickscfg no Windows. Todos os subcomandos da CLI (e da CLI de execuções de trabalhos) chamarão a API REST de Trabalhos 2.1 por padrão.
    • Isso adiciona a configuração jobs-api-version = 2.1 ao arquivo ~/.databrickscfg no Unix, Linux ou macOS, ou %USERPROFILE%\.databrickscfg no Windows. Todos os subcomandos da CLI (e da CLI de execuções de trabalhos) chamarão a API REST de Trabalhos 2.1 por padrão.
    • Acrescente a opção --version=2.1 (por exemplo, databricks jobs list --version=2.1) para instruir a CLI de trabalhos a chamar a API REST de Trabalhos 2.1 somente para essa chamada.

    Se você não tiver adotado nenhuma das ações anteriores, a CLI de trabalhos (e a CLI de execuções de trabalhos) chamarão a API REST de Trabalhos 2.0 por padrão.

Requisitos de chamada da API REST de Trabalhos 2.0

Para configurar e usar a CLI de trabalhos do Databricks (e a CLI de execuções de trabalhos) para chamar a API REST de Trabalhos 2.0, execute um destes procedimentos:

  • Use uma versão da CLI do Databricks abaixo de 0.16.0, ou
  • Atualize a CLI para a versão X.Y.Z ou superior e, em seguida, sega um destes procedimentos:
    • Execute o comando databricks jobs configure --version=2.0. Isso adiciona a configuração jobs-api-version = 2.0 ao arquivo ~/.databrickscfg no Unix, Linux ou macOS, ou %USERPROFILE%\.databrickscfg no Windows. Todos os subcomandos da CLI de trabalhos (e da CLI de execuções de trabalhos) chamarão a API REST de Trabalhos 2.0 por padrão.
    • Isso adiciona a configuração jobs-api-version = 2.0 ao arquivo ~/.databrickscfg no Unix, Linux ou macOS, ou %USERPROFILE%\.databrickscfg no Windows. Todos os subcomandos da CLI de trabalhos (e da CLI de execuções de trabalhos) chamarão a API REST de Trabalhos 2.0 por padrão.
    • Acrescente a opção --version=2.1 (por exemplo, databricks jobs list --version=2.0) para instruir a CLI de trabalhos a chamar a API REST de Trabalhos 2.0 somente para essa chamada.

Se você não tiver adotado nenhuma das ações anteriores, a CLI de trabalhos (e a CLI de execuções de trabalhos) chamarão a API REST de Trabalhos 2.0 por padrão.

Subcomandos e uso geral

databricks jobs -h
Usage: databricks jobs [OPTIONS] COMMAND [ARGS]...

  Utility to interact with jobs.

  Job runs are handled by ``databricks runs``.

Options:
  -v, --version  [VERSION]
  -h, --help     Show this message and exit.

Commands:
  create   Creates a job.
    Options:
      --json-file PATH            File containing JSON request to POST to /api/2.0/jobs/create.
      --json JSON                 JSON string to POST to /api/2.0/jobs/create.
  delete   Deletes a job.
    Options:
      --job-id JOB_ID             Can be found in the URL at https://<databricks-instance>/?o=<16-digit-number>#job/$JOB_ID. [required]
  get      Describes the metadata for a job.
    Options:
    --job-id JOB_ID               Can be found in the URL at https://<databricks-instance>/?o=<16-digit-number>#job/$JOB_ID. [required]
  list     Lists the jobs in the Databricks Job Service.
  reset    Resets (edits) the definition of a job.
    Options:
      --job-id JOB_ID             Can be found in the URL at https://<databricks-instance>/?o=<16-digit-number>#job/$JOB_ID. [required]
      --json-file PATH            File containing JSON request to POST to /api/2.0/jobs/create.
      --json JSON                 JSON string to POST to /api/2.0/jobs/create.
  run-now  Runs a job with optional per-run parameters.
    Options:
      --job-id JOB_ID             Can be found in the URL at https://<databricks-instance>/#job/$JOB_ID. [required]
      --jar-params JSON           JSON string specifying an array of parameters. i.e. '["param1", "param2"]'
      --notebook-params JSON      JSON string specifying a map of key-value pairs. i.e. '{"name": "john doe", "age": 35}'
      --python-params JSON        JSON string specifying an array of parameters. i.e. '["param1", "param2"]'
      --spark-submit-params JSON  JSON string specifying an array of parameters. i.e. '["--class", "org.apache.spark.examples.SparkPi"]'

Criar um trabalho

Para ver a documentação de uso, execute databricks jobs create --help.

Uso geral

databricks jobs create --json-file create-job.json

Notas de uso e exemplo de solicitação da CLI de Trabalhos 2.1

Consulte Criar em Atualizações da API de Trabalhos 2.0 para 2.1.

Exemplo de carga de solicitação e resposta da CLI de Trabalhos 2.0

create-job.json:

{
  "name": "my-job",
  "existing_cluster_id": "1234-567890-reef123",
  "notebook_task": {
    "notebook_path": "/Users/someone@example.com/My Notebook"
  },
  "email_notifications": {
    "on_success": [
      "someone@example.com"
    ],
    "on_failure": [
      "someone@example.com"
    ]
  }
}
{ "job_id": 246 }

Dica

Para copiar um trabalho, execute o comando create e transmita um objeto JSON com as configurações do trabalho a ser copiado. Este exemplo copia as configurações do trabalho com a ID de 246 em um novo trabalho. Ele requer o utilitário jq.

SETTINGS_JSON=$(databricks jobs get --job-id 246 | jq .settings)

databricks jobs create --json "$SETTINGS_JSON"
{ "job_id": 247 }

Excluir um trabalho

Para exibir a documentação de uso, execute databricks jobs delete --help.

databricks job delete --job-id 246

Se obtiver sucesso, nenhuma saída será exibida.

Dica

Para excluir vários trabalhos com a mesma configuração, obter a lista de IDs de trabalhos correspondente a essa configuração e execute o comando delete para cada ID de trabalho correspondente. Este exemplo exclui todos os trabalhos com o nome do trabalho Untitled. Ele requer o utilitário jq.

databricks jobs list --output json | jq '.jobs[] | select(.settings.name == "Untitled") | .job_id' | xargs -n 1 databricks jobs delete --job-id

Listar informações sobre um trabalho

Para exibir a documentação de uso, execute databricks jobs get --help.

Uso geral

databricks jobs get --job-id 246

Notas de uso e exemplo de resposta da CLI de Trabalhos 2.1

Consulte Obter em Atualizações da API de Trabalhos 2.0 a 2.1.

Exemplo de resposta da CLI de Trabalhos 2.0

{
  "job_id": 246,
  "settings": {
    "name": "my-job",
    "existing_cluster_id": "1234-567890-reef123",
    "email_notifications": {
      "on_success": [
        "someone@example.com"
      ],
      "on_failure": [
        "someone@example.com"
      ]
    },
    "timeout_seconds": 0,
    "notebook_task": {
      "notebook_path": "/Users/someone@example.com/My Notebook"
    },
    "max_concurrent_runs": 1
  },
  "created_time": 1620163107742,
  "creator_user_name": "someone@example.com"
}

Listar informações sobre trabalhos disponíveis

Para exibir a documentação de uso, execute databricks jobs list --help.

Uso geral

databricks jobs list

Notas de uso e exemplo de resposta da CLI de Trabalhos 2.1

Consulte Lista em Atualizações da API de Trabalhos 2.0 a 2.1.

Exemplo de resposta da CLI de Trabalhos 2.0

{
  "jobs": [
    {
      "job_id": 246,
      "settings": {
        "name": "my-job",
        "existing_cluster_id": "1234-567890-reef123",
        "email_notifications": {
          "on_success": [
            "someone@example.com"
          ],
          "on_failure": [
            "someone@example.com"
          ]
        },
        "timeout_seconds": 0,
        "notebook_task": {
          "notebook_path": "/Users/someone@example.com/My Notebook"
        },
        "max_concurrent_runs": 1
      },
      "created_time": 1620163107742,
      "creator_user_name": "someone@example.com"
    },
    ...
  ]
}

Listar todos os trabalhos (somente API 2.1)

Para instruir a CLI a retornar todos os trabalhos fazendo chamadas sequenciais para a API, use a opção --all. Para usar a opção --all, você deve definir a versão da API como 2.1.

databricks jobs list --all

Paginar a lista de trabalhos (somente API 2.1)

Para retornar uma lista de trabalhos paginados, use os argumentos --limit e --offset. Por padrão, a lista de trabalhos é retornada como uma tabela que contém a ID do trabalho e o nome do trabalho. Opcionalmente, para retornar um documento JSON que contém informações de trabalho, use o argumento --output JSON.

Para usar os argumentos --limit e --offset, você deve definir a versão da API como 2.1.

Ao usar --output JSON, a lista é retornada em ordem decrescente por data de criação de trabalho. Ao usar --output TABLE, a lista é retornada em ordem decrescente por data de criação de trabalho e, em seguida, classificada em ordem alfabética por nome de trabalho.

O exemplo a seguir percorre 10 trabalhos por vez da lista de trabalhos e retorna os resultados no formato JSON:

databricks jobs list --output JSON --limit 10
databricks jobs list --output JSON --limit 10 --offset 10
databricks jobs list --output JSON --limit 10 --offset 20

Alterar as configurações de um trabalho

Para exibir a documentação de uso, execute databricks jobs reset --help.

Uso geral

databricks jobs reset --job-id 246 --json-file reset-job.json

Notas de uso e exemplo de solicitação da CLI de Trabalhos 2.1

Veja Atualizar e Redefinir em Atualização da API de Trabalhos 2.0 to 2.1.

Exemplo de solicitação da CLI de Trabalhos 2.0

reset-job.json:

{
  "job_id": 246,
  "existing_cluster_id": "2345-678901-batch234",
  "name": "my-changed-job",
  "notebook_task": {
    "notebook_path": "/Users/someone@example.com/My Other Notebook"
  },
  "email_notifications": {
    "on_success": [
      "someone-else@example.com"
    ],
    "on_failure": [
      "someone-else@example.com"
    ]
  }
}

Se obtiver sucesso, nenhuma saída será exibida.

Executar um trabalho

Para exibir a documentação de uso, execute databricks jobs run-now --help.

databricks jobs run-now --job-id 246
{
  "run_id": 122,
  "number_in_job": 1
}