CLI de tâches (héritée)

Important

Cette documentation a été mise hors service et peut ne pas être mise à jour.

Ces informations s’appliquent aux anciennes versions Databricks CLI 0,18 et inférieures. Databricks vous recommande d’utiliser à la place la nouvelle version 0.205 ou supérieure de l’interface CLI Databricks. Consultez Qu’est-ce que l’interface CLI Databricks ?. Pour trouver votre version de l’interface CLI Databricks, exécutez databricks -v.

Pour migrer de Databricks CLI version 0,18 ou inférieure vers Databricks CLI version 0,205 ou supérieure, consultez Migration Databricks CLI.

Pour exécuter des sous-commandes de l’interface CLI des tâches Databricks, vous devez les ajouter à databricks jobs la tâche Databricks et exécuter des sous-commandes CLI en les ajoutant à databricks runs . Pour le travail Databricks exécute les sous-commandes CLI, consultez Runs CLI (legacy). Ensemble, ces sous-commandes appellent l’API Travaux et l’API Travaux 2.0.

Important

L’interface CLI des travaux Databricks prend en charge les appels à deux versions de l’API REST des tâches Databricks : versions 2.1 et 2.0. La version 2.1 prend en charge l’orchestration des travaux avec plusieurs tâches. Consultez Créer et exécuter les travaux Azure Databricks et Mise à jour des travaux de l API 2.0 vers 2.1. Databricks vous recommande d’appeler la version 2.1, sauf si vous avez des scripts hérités qui reposent sur la version 2.0 et qui ne peuvent pas être migrés.

Sauf indication contraire, les comportements de programmation décrits dans cet article s’appliquent également aux versions 2.1 et 2.0.

Conditions requises pour appeler l’API REST Travaux 2.1

Pour configurer et utiliser l’interface CLI des tâches Databricks (et la CLI exécutions de tâches) pour appeler l’API REST de travaux 2.1, procédez comme suit :

  1. Mettez à jour l’interface CLI vers la version 0.16.0 ou ultérieure.

  2. Effectuez l’une des opérations suivantes :

    • Exécutez la commande databricks jobs configure --version=2.1. Cela ajoute le paramètre jobs-api-version = 2.1 au fichier ~/.databrickscfg sur UNIX, Linux ou MacOS, ou %USERPROFILE%\.databrickscfg sur Windows. Toutes les sous-commandes de l'interface CLI de Travaux (et de l'interface CLI d'exécution de travaux) feront appel à l'API REST de Travaux 2.1 par défaut.
    • Ajoutez manuellement le paramètre jobs-api-version = 2.1 au fichier ~/.databrickscfg sous Unix, Linux ou macOS, ou %USERPROFILE%\.databrickscfg sous Windows. Toutes les sous-commandes de l'interface CLI de Travaux (et de l'interface CLI d'exécution de travaux) feront appel à l'API REST de Travaux 2.1 par défaut.
    • Ajoutez l’option --version=2.1 (par exemple, databricks jobs list --version=2.1) pour indiquer à l’interface CLI des travaux d’appeler l’API REST de travaux 2.1 pour cet appel uniquement.

    Si vous ne prenez aucune des mesures précédentes, l'interface CLI de Jobs (et l'interface CLI d'exécution des tâches) appelle l'API REST Jobs 2.0 par défaut.

Conditions requises pour appeler l’API REST Travaux 2.0

Pour configurer et utiliser la CLI jobs de Databricks (et la CLI jobs runs) pour appeler l'API REST Jobs 2.0, effectuez l'une des opérations suivantes :

  • Utilisez une version de l’interface CLI Databricks sous 0.16.0, ou
  • Mettez à jour le CLI à la version X.Y.Z ou supérieure, puis effectuez l'une des opérations suivantes :
    • Exécutez la commande databricks jobs configure --version=2.0. Cela ajoute le paramètre jobs-api-version = 2.0 au fichier ~/.databrickscfg sur UNIX, Linux ou MacOS, ou %USERPROFILE%\.databrickscfg sur Windows. Toutes les sous-commandes de l'interface CLI de Jobs (et de l'interface CLI d'exécution des tâches) feront appel à l'API REST 2.0 de Jobs par défaut.
    • Ajoutez manuellement le paramètre jobs-api-version = 2.0au fichier~/.databrickscfg sous Unix, Linux ou macOS, ou %USERPROFILE%\.databrickscfg sous Windows. Toutes les sous-commandes de l'interface CLI de Jobs (et de l'interface CLI d'exécution des tâches) feront appel à l'API REST 2.0 de Jobs par défaut.
    • Ajoutez l’option --version=2.1 (par exemple, databricks jobs list --version=2.0) pour indiquer à l’interface CLI des travaux d’appeler l’API REST de travaux 2.0 pour cet appel uniquement.

Si vous ne prenez aucune des mesures précédentes, l'interface CLI de Jobs (et l'interface CLI d'exécution des tâches) appelle l'API REST Jobs 2.0 par défaut.

Sous-commandes et utilisation générale

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

Créer un travail

Pour afficher la documentation d’utilisation, exécutez databricks jobs create --help.

Utilisation générale

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

Notes d'utilisation et exemple de demande de travaux CLI 2.1

Consultez Créer dans Mise à jour des travaux de l’API de 2.0 vers 2.1.

Exemple de données utiles et de réponse à une demande de travaux CLI 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 }

Conseil

Pour copier un travail, exécutez la commande create et transmettez un objet JSON avec les paramètres de la tâche à copier. Cet exemple copie les paramètres de la tâche avec l’ID de 246 dans un nouveau travail. Elle nécessite l’utilitaire JQ .

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

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

Supprimer un travail

Pour afficher la documentation d’utilisation, exécutez databricks jobs delete --help.

databricks job delete --job-id 246

En cas de réussite, aucune sortie ne s’affiche.

Conseil

Pour supprimer plusieurs travaux ayant le même paramètre, récupérez la liste des ID de travail qui correspondent à ce paramètre, puis exécutez la commande delete pour chaque ID de travail correspondant. Cet exemple supprime toutes les tâches dont le nom de Untitled tâche est. Elle nécessite l’utilitaire JQ .

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

Lister les informations relatives à un travail

Pour afficher la documentation d’utilisation, exécutez databricks jobs get --help.

Utilisation générale

databricks jobs get --job-id 246

Notes d'utilisation et exemple de demande de travaux CLI 2.1

Consultez Obtenir dans Mise à jour des travaux de l’API de 2.0 vers 2.1.

Exemple de réponse CLI de travaux 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"
}

Répertorier les informations sur les tâches disponibles

Pour afficher la documentation d’utilisation, exécutez databricks jobs list --help.

Utilisation générale

databricks jobs list

Notes d'utilisation et exemple de demande de travaux CLI 2.1

Consultez Répertorier dans Mise à jour des travaux de l’API de 2.0 vers 2.1.

Exemple de réponse Jobs CLI 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"
    },
    ...
  ]
}

Lister tous les travaux (API 2.1 uniquement)

Pour indiquer à l’interface CLI de retourner tous les travaux en effectuant des appels séquentiels à l’API, utilisez l’option --all. Pour utiliser l’option --all, vous devez définir la version d’API sur 2.1.

databricks jobs list --all

Paginer la liste des travaux (API 2.1 uniquement)

Pour retourner une liste de travaux paginée, utilisez les arguments --limit et --offset. Par défaut, la liste des travaux est retournée sous forme de table avec l’ID de travail et le nom du travail. Pour retourner éventuellement un document JSON contenant les informations de travail, utilisez l’argument --output JSON.

Pour utiliser les arguments --limit et --offset, vous devez définir la version d’API sur 2.1.

Quand vous utilisez --output JSON, la liste est retournée par ordre décroissant de la date de création du travail. Quand vous utilisez --output TABLE, la liste est retournée par ordre décroissant de la date de création du travail, puis triée par ordre alphabétique du nom de travail.

L’exemple suivant pagine la liste des travaux avec 10 travaux à la fois et retourne les résultats au format 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

Modifier les paramètres d’un travail.

Pour afficher la documentation d’utilisation, exécutez databricks jobs reset --help.

Utilisation générale

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

Notes d'utilisation et exemple de demande de travaux CLI 2.1

Consultez Mettre à jour et Réinitialiser dans Mise à jour des travaux de l’API de 2.0 vers 2.1.

Exemple de requête CLI de travaux 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"
    ]
  }
}

En cas de réussite, aucune sortie ne s’affiche.

Exécuter une tâche

Pour afficher la documentation d’utilisation, exécutez databricks jobs run-now --help.

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