API Espace de travail 2.0

L’API de l’espace de travail vous permet de répertorier, d’importer, d’exporter et de supprimer des blocs-notes et des dossiers. La taille maximale autorisée pour une requête adressée à l’espace de travail API est de 10 Mo. Pour obtenir des instructions sur cette API, consultez exemples de remise de journal de cluster .

Important

Pour accéder aux API REST Databricks, vous devez vous authentifier.

Supprimer

Point de terminaison Méthode HTTP
2.0/workspace/delete POST

Supprimer un objet ou un répertoire (et éventuellement supprimer de manière récursive tous les objets de l’annuaire). Si path n’existe pas, cet appel retourne une erreur RESOURCE_DOES_NOT_EXIST . Si path est un répertoire non vide et recursive a la valeur false , cet appel retourne une erreur DIRECTORY_NOT_EMPTY . La suppression d’objets ne peut pas être annulée et la suppression d’un répertoire de manière récursive n’est pas atomique.

Exemple

Demande :

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/delete \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder", "recursive": true }'

En cas de réussite, ce point de terminaison ne retourne aucune réponse.

Structure de la requête

Nom du champ Type Description
path STRING Chemin absolu du fichier ou du répertoire. Ce champ doit obligatoirement être renseigné.
recursive BOOL Indicateur qui spécifie s’il faut supprimer l’objet de manière récursive. La valeur par défaut de ce paramètre est false. Notez que ce répertoire de suppression n’est pas atomique. En cas d’échec au milieu, certains objets sous ce répertoire peuvent être supprimés et ne peuvent pas être annulés.

Exporter

Point de terminaison Méthode HTTP
2.0/workspace/export GET

Exporter un bloc-notes ou le contenu d’un répertoire entier. Vous pouvez également exporter un référentiel Databricks, ou un bloc-notes ou un répertoire à partir d’un référentiel Databricks. Vous ne pouvez pas exporter de fichiers non-Notebook à partir d’un référentiel Databricks. Si path n’existe pas, cet appel retourne une erreur RESOURCE_DOES_NOT_EXIST . Vous pouvez exporter un répertoire uniquement au format DBC. Si les données exportées dépassent la limite de taille, cet appel retourne une erreur MAX_NOTEBOOK_SIZE_EXCEEDED . Cette API ne prend pas en charge l’exportation d’une bibliothèque.

Exemple

Demande :

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/export \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder/MyNotebook", "format": "SOURCE", "direct_download": true }'
curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/export \
  --header 'Accept: application/json' \
  --data '{ "path": "/Repos/me@example.com/MyFolder/MyNotebook", "format": "SOURCE", "direct_download": true }'

Réponse :

Si le direct_download champ a la valeur false ou a été omis de la demande, une version codée en base64 du contenu est retournée, par exemple :

{
  "content": "Ly8gRGF0YWJyaWNrcyBub3RlYm9vayBzb3VyY2UKMSsx",
}

Sinon, si direct_download a la valeur true dans la demande, le contenu est téléchargé.

Structure de la requête

Nom du champ Type Description
path STRING Chemin absolu du fichier ou du répertoire. L’exportation d’un répertoire est prise en charge uniquement pour DBC . Ce champ doit obligatoirement être renseigné.
format ExportFormat Spécifie le format du fichier exporté. Par défaut, cette valeur est SOURCE. La valeur est sensible à la casse.
direct_download BOOL Indicateur pour activer le téléchargement direct. Si c’est le cas true, la réponse sera le fichier exporté lui-même. Dans le cas contraire, la réponse contient du contenu sous la forme d’une chaîne encodée en base64. Pour plus d’informations sur la façon de l’utiliser, consultez exporter un bloc-notes ou un dossier .

Structure de réponse

Nom du champ Type Description
contenu BYTES Le contenu codé en base64. Si la limite (10 Mo) est dépassée, une exception avec le code d’erreur MAX_NOTEBOOK_SIZE_EXCEEDED est levée.

Obtenir l’état

Point de terminaison Méthode HTTP
2.0/workspace/get-status GET

Obtient l’état d’un objet ou d’un répertoire. Si path n’existe pas, cet appel retourne une erreur RESOURCE_DOES_NOT_EXIST .

Exemple

Demande :

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/get-status \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder/MyNotebook" }'

Réponse :

{
  "object_type": "NOTEBOOK",
  "path": "/Users/me@example.com/MyFolder/MyNotebook",
  "language": "PYTHON",
  "object_id": 123456789012345
}

Structure de la requête

Nom du champ Type Description
path STRING Chemin absolu du fichier ou du répertoire. Ce champ doit obligatoirement être renseigné.

Structure de réponse

Nom du champ Type Description
object_type ObjectType Type de l'objet.
object_id INT64 Identificateur unique pour l’objet .
path STRING Chemin d'accès absolu de l'objet.
langage Langage Langage de l’objet. Cette valeur est définie uniquement si le type d’objet est NOTEBOOK .

Importez

Point de terminaison Méthode HTTP
2.0/workspace/import POST

Importez un carnet de notes ou le contenu d'un répertoire entier. Si path existe déjà et overwrite a la valeur false , cet appel retourne une erreur RESOURCE_ALREADY_EXISTS . Vous pouvez utiliser uniquement le format DBC pour importer un répertoire.

Exemple

Importez une chaîne de caractères codée en base64 :

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/import \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder/MyNotebook", "content": "Ly8gRGF0YWJyaWNrcyBub3RlYm9vayBzb3VyY2UKMSsx", "language": "PYTHON", "overwrite": true, "format": "SOURCE" }'

Importer un fichier local :

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/import \
  --header 'Content-Type: multipart/form-data' \
  --form path=/Users/me@example.com/MyFolder/MyNotebook \
  --form content=@myCode.py.zip

En cas de réussite, ce point de terminaison ne retourne aucune réponse.

Structure de la requête

Nom du champ Type Description
path STRING Chemin absolu du fichier ou du répertoire. L’importation de répertoire prend uniquement en charge le format DBC. Ce champ doit obligatoirement être renseigné.
format ExportFormat Spécifie le format du fichier à importer. Par défaut, cette valeur est SOURCE. La valeur est sensible à la casse.
langage Langage Langage. Si le format est défini sur SOURCE , ce champ est obligatoire ; sinon, il sera ignoré.
contenu BYTES Le contenu codé en base64. La limite est de 10 Mo. Si la limite (10 Mo) est dépassée, une exception avec le code d’erreur MAX_NOTEBOOK_SIZE_EXCEEDED est levée. Ce paramètre peut être absent, et un fichier publié sera utilisé à la place. Voir Importer un cahier ou un répertoire pour plus d'informations sur la façon de l'utiliser.
overwrite BOOL Le drapeau qui spécifie si l'on doit écraser l'objet existant. La valeur par défaut de ce paramètre est false. Pour le format DBC, le remplacement n’est pas pris en charge, car il peut contenir un répertoire.

Liste

Point de terminaison Méthode HTTP
2.0/workspace/list GET

Répertorie le contenu d’un répertoire ou l’objet s’il ne s’agit pas d’un répertoire. Si le chemin d’accès d’entrée n’existe pas, cet appel retourne une erreur RESOURCE_DOES_NOT_EXIST .

Exemple

Répertorier les répertoires et leur contenu :

Demande :

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/list \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com" }'

Réponse :

{
  "objects": [
    {
      "path": "/Users/me@example.com/MyFolder",
      "object_type": "DIRECTORY",
      "object_id": 234567890123456
    },
    {
      "path": "/Users/me@example.com/MyFolder/MyNotebook",
      "object_type": "NOTEBOOK",
      "language": "PYTHON",
      "object_id": 123456789012345
    },
    {
      "..."
    }
  ]
}

Répertorier les pensions :

curl --netrc --request GET \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/list \
  --header 'Accept: application/json' \
  --data '{ "path": "/Repos/me@example.com" }'

Réponse :

{
  "objects": [
    {
      "path": "/Repos/me@example.com/MyRepo1",
      "object_type": "REPO",
      "object_id": 234567890123456
    },
    {
      "path": "/Repos/me@example.com/MyRepo2",
      "object_type": "REPO",
      "object_id": 123456789012345
    },
    {
      "..."
    }
  ]
}

Structure de la requête

Nom du champ Type Description
path STRING Chemin absolu du fichier ou du répertoire. Ce champ doit obligatoirement être renseigné.

Structure de la réponse

Nom du champ Type Description
objets Tableau de ObjectInfo Liste d’objets.

Mkdirs

Point de terminaison Méthode HTTP
2.0/workspace/mkdirs POST

Crée le répertoire donné et les répertoires parents nécessaires s’ils n’existent pas. S’il existe un objet (pas un répertoire) à un préfixe du chemin d’accès d’entrée, cet appel retourne une erreur RESOURCE_ALREADY_EXISTS . Si cette opération échoue, elle peut avoir réussi à créer certains des répertoires parents nécessaires.

Exemple

Demande :

curl --netrc --request POST \
  https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/workspace/mkdirs \
  --header 'Accept: application/json' \
  --data '{ "path": "/Users/me@example.com/MyFolder" }'

En cas de réussite, ce point de terminaison ne retourne aucune réponse.

Structure de la requête

Nom du champ Type Description
path STRING Chemin d'accès absolu du répertoire. Si les répertoires parents n’existent pas, ils sont également créés. Si le répertoire existe déjà, cette commande ne fait rien. Ce champ doit obligatoirement être renseigné.

Structures de données

Dans cette section :

ObjectInfo

Informations de l’objet dans l’espace de travail. Elle est retournée par list et get-status .

Nom du champ Type Description
object_type ObjectType Type de l'objet.
object_id INT64 Identificateur unique pour l’objet .
path STRING Chemin d'accès absolu de l'objet.
langage Langage Langage de l’objet. Cette valeur est définie uniquement si le type d’objet est NOTEBOOK .

ExportFormat

Format d’importation et d’exportation des notebooks.

Format Description
SOURCE Le bloc-notes sera importé/exporté en tant que code source.
HTML Le bloc-notes sera importé/exporté en tant que fichier HTML.
JUPYTER Le bloc-notes sera importé/exporté en tant que fichier de bloc-notes Jupyter/IPython.
DBC Le bloc-notes sera importé/exporté en tant que format d’archive Databricks.

Langage

Langue du bloc-notes.

Langage Description
SCALA Notebook Scala.
PYTHON Notebook Python.
SQL bloc-notes SQL.
R Notebook R.

ObjectType

Type de l’objet dans l’espace de travail.

Type Description
NOTEBOOK Notebook
ANNUAIRE Répertoire
FILE Fichier
LIBRARY Bibliothèque
REPO Référentiel