CLI de trabajos (heredada)

Importante

Esta documentación se ha retirado y es posible que no se actualice.

Esta información se aplica a las versiones heredadas de la CLI de Databricks 0.18 y versiones posteriores. En su lugar, Databricks recomienda usar la versión más reciente 0.205 o posterior de la CLI de Databricks. Consulte ¿Qué es la CLI de Databricks?. Para encontrar su versión de la CLI de Databricks, ejecute databricks -v.

Para migrar de la versión 0.18 o inferior a la versión 0.205 o superior de la CLI de Databricks, consulte Migración de la CLI de Databricks.

Para ejecutar los subcomandos de la CLI de trabajos de Databricks, anéxelos a databricks jobs. Para ejecutar los subcomandos de la CLI de ejecuciones de trabajos de Databricks, anéxelos a databricks runs. Para ver los subcomandos de la CLI de ejecuciones de trabajos de Databricks, consulte la CLI de ejecuciones (heredada). Juntos, estos subcomandos llaman a Jobs API 2.0 y Jobs API.

Importante

La CLI de trabajos de Databricks admite llamadas a dos versiones de la API REST de trabajos de Databricks: las versiones 2.1 y 2.0. La versión 2.1 agrega soporte técnico para la orquestación de trabajos con varias tareas; consulte Creación y ejecución de trabajos de Azure Databricks y Actualizaciones de Jobs API de 2.0 a 2.1. Databricks recomienda llamar a la versión 2.1, a menos que tenga scripts heredados que dependan de la versión 2.0 y no se puedan migrar.

A menos que se especifique lo contrario, los comportamientos de programación que se describen en este artículo se aplican igualmente a las versiones 2.1 y 2.0.

Requisitos para llamar a la API de REST 2.1 de trabajos

Para configurar y usar la CLI de trabajos de Databricks (y la CLI de ejecuciones de trabajos) para llamar a la API REST 2.1 de trabajos, haga lo siguiente:

  1. Actualice la CLI a la versión 0.16.0 o posterior.

  2. Realice una de las siguientes acciones:

    • Ejecute el comando databricks jobs configure --version=2.1. La configuración jobs-api-version = 2.1 se agrega al archivo ~/.databrickscfg en Unix, Linux o macOS, o a %USERPROFILE%\.databrickscfg en Windows. Todos los subcomandos de la CLI de trabajos (y de la CLI de ejecuciones de trabajos) llamarán a la API REST 2.1 de trabajos de manera predeterminada.
    • Agregue manualmente la configuración jobs-api-version = 2.1 al archivo ~/.databrickscfg en Unix, Linux o macOS, o a %USERPROFILE%\.databrickscfg en Windows. Todos los subcomandos de la CLI de trabajos (y de la CLI de ejecuciones de trabajos) llamarán a la API REST 2.1 de trabajos de manera predeterminada.
    • Anexe la opción --version=2.1 (por ejemplo, databricks jobs list --version=2.1) para indicar a la CLI de trabajos que llame a la API REST 2.1 de trabajos solo para esa llamada.

    Si no realiza ninguna de las acciones anteriores, la CLI de trabajos (y la CLI de ejecuciones de trabajos) llamará a la API REST 2.0 de trabajos de manera predeterminada.

Requisitos para llamar a la API de REST 2.0 de trabajos

Para configurar y usar la CLI de trabajos de Databricks (y la CLI de ejecuciones de trabajos) para llamar a la API REST 2.0 de trabajos, tiene estas opciones:

  • Use una versión de la CLI de Databricks inferior a 0.16.0, o
  • Actualice la CLI a la versión X.Y.Z o posterior, y después haga lo siguiente:
    • Ejecute el comando databricks jobs configure --version=2.0. La configuración jobs-api-version = 2.0 se agrega al archivo ~/.databrickscfg en Unix, Linux o macOS, o a %USERPROFILE%\.databrickscfg en Windows. Todos los subcomandos de la CLI de trabajos (y de la CLI de ejecuciones de trabajos) llamarán a la API REST 2.0 de trabajos de manera predeterminada.
    • Agregue manualmente la configuración jobs-api-version = 2.0 al archivo ~/.databrickscfg en Unix, Linux o macOS, o a %USERPROFILE%\.databrickscfg en Windows. Todos los subcomandos de la CLI de trabajos (y de la CLI de ejecuciones de trabajos) llamarán a la API REST 2.0 de trabajos de manera predeterminada.
    • Anexe la opción --version=2.1 (por ejemplo, databricks jobs list --version=2.0) para indicar a la CLI de trabajos que llame a la API REST 2.0 de trabajos solo para esa llamada.

Si no realiza ninguna de las acciones anteriores, la CLI de trabajos (y la CLI de ejecuciones de trabajos) llamará a la API REST 2.0 de trabajos de manera predeterminada.

Subcomandos y uso general

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"]'

Creación de un trabajo

Para mostrar la documentación de uso, ejecute databricks jobs create --help.

Uso general

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

Notas de uso y ejemplo de solicitud de la CLI 2.1 de trabajos

Consulte Creación en actualización de Jobs API 2.0 a 2.1.

Ejemplo de carga de solicitud y respuesta de la CLI 2.0 de trabajos

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 }

Sugerencia

Para copiar un trabajo, ejecute el comando create y pase un objeto JSON con la configuración del trabajo que se copiará. En este ejemplo se copia la configuración del trabajo, con el Id. de 246, en un nuevo trabajo. Necesita la utilidad jq.

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

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

Eliminación de un trabajo

Para mostrar la documentación de uso, ejecute databricks jobs delete --help.

databricks job delete --job-id 246

Si se lleva a cabo correctamente, no se muestra ninguna salida.

Sugerencia

Para eliminar varios trabajos con la misma configuración, obtenga la lista de Ids. de trabajo que coincidan con esa configuración. Después, ejecute el comando delete para cada Id. de trabajo coincidente. En este ejemplo se eliminan todos los trabajos con el nombre de trabajo Untitled. Necesita la utilidad jq.

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

Enumeración de la información sobre un trabajo

Para mostrar la documentación de uso, ejecute databricks jobs get --help.

Uso general

databricks jobs get --job-id 246

Notas de uso y ejemplo de respuesta de la CLI 2.1 de trabajos

Consulte Obtener en actualización de Jobs API 2.0 a 2.1.

Ejemplo de respuesta de la CLI 2.0 de trabajos

{
  "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"
}

Enumeración de la información sobre los trabajos disponibles

Para mostrar la documentación de uso, ejecute databricks jobs list --help.

Uso general

databricks jobs list

Notas de uso y ejemplo de respuesta de la CLI 2.1 de trabajos

Consulte Lista en Actualización de Jobs API 2.0 a 2.1.

Ejemplo de respuesta de la CLI 2.0 de trabajos

{
  "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"
    },
    ...
  ]
}

Enumeración de todos los trabajos (solo API 2.1)

Para indicar a la CLI que devuelva todos los trabajos mediante llamadas secuenciales a la API, use la opción --all. Para usar la opción --all, debe establecer la versión de la API en la 2.1.

databricks jobs list --all

Paginación de la lista de trabajos (solo API 2.1)

Para devolver una lista de trabajos paginada, use los argumentos --limit y --offset. De manera predeterminada, la lista de trabajos se devuelve como una tabla que contiene el identificador de trabajo y el nombre del trabajo. Para devolver opcionalmente un documento JSON que contiene información de los trabajos, use el argumento --output JSON.

Para usar los argumentos --limit y --offset, debe establecer la versión de la API en la 2.1.

Cuando se usa --output JSON, la lista se devuelve en orden descendente por fecha de creación del trabajo. Cuando se usa --output TABLE, la lista se devuelve en orden descendente por fecha de creación del trabajo y, a continuación, se ordena alfabéticamente por nombre del trabajo.

En el ejemplo siguiente, se pagina la lista de trabajos con 10 trabajos cada vez y se devuelven los resultados en 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

Cambie la configuración de un trabajo

Para mostrar la documentación de uso, ejecute databricks jobs reset --help.

Uso general

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

Notas de uso y ejemplo de solicitud de la CLI 2.1 de trabajos

Consulte Actualización y restablecimiento en Actualización desde Jobs API 2.0 a 2.1.

Ejemplo de solicitud de la CLI 2.0 de trabajos

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"
    ]
  }
}

Si se lleva a cabo correctamente, no se muestra ninguna salida.

Ejecución de un trabajo

Para mostrar la documentación de uso, ejecute databricks jobs run-now --help.

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