Naslag voor Databricks-REST API

Azure Databricks Data Science Engineering en Databricks Machine Learning drie REST API's die verschillende taken & uitvoeren: &2.0en 1.2. Gebruik API's 2.1 en 2.0 voor algemeen beheer. Met API 1.2 kunt u opdrachten rechtstreeks op de Azure Databricks.

Belangrijk

U moet u verifiëren voor toegang tot Databricks-REST API's.

In deze sectie vindt u naslaghandleidingen voor de REST API's die u gebruikt wanneer u werkt met de Databricks Data Science Engineering- en & Databricks-Machine Learning-omgevingen. U kunt ook rechtstreeks naar de REST API startpagina's gaan voor de nieuwste versie of voor versie 2.1,2.0of 1.2. Databricks SQL REST API's zijn opgenomen in de Databricks SQL-handleiding in Databricks SQL API-verwijzing. Databricks Machine Learning biedt ook een Python-API voor Feature Store. Zie Databricks Feature Store Python API.

API's

Verificatie

Zie Verificatie met behulp van persoonlijke toegangstokens van Azure Databricksvoor meer informatie over de verificatie in de REST API met persoonlijk toegangstokens.

Zie Verifiëren met Azure Active Directory-tokens voor informatie over het verifiëren van de REST API met behulp van Azure Active Directory-tokens. Zie voor voorbeelden Een Azure Active Directory-toegangstoken gebruiken voor een gebruiker en Een Azure Active Directory-toegangstoken gebruiken voor een service-principal.

Raadpleeg API-voorbeelden voor API-voorbeelden.

Frequentielimieten

Om voor een hoge servicekwaliteit te zorgen bij een zware belasting, dwingt Databricks frequentielimieten voor alle REST API-aanroepen. Limieten worden per eindpunt en werkruimte ingesteld om te zorgen voor eerlijk gebruik en hoge beschikbaarheid. Als u een limietverhoging wilt aanvragen, neemt u contact op met uw Databricks-vertegenwoordiger.

Aanvragen die de frequentielimiet overschrijden, retourneren een 429-statuscode.

Uitvoer parseren

Het kan nuttig zijn om delen van de JSON-uitvoer te parseren. Databricks raadt het hulpprogramma aan voor jq het parseren van JSON. U kunt in Linux installeren via jq Releases , in macOS met behulp van Homebrew met of op Windows jqjqbrew install jq chocolatey met choco install jq . Zie de jqjqvoor meer informatie over .

In dit voorbeeld worden de namen en de ID's van beschikbare clusters in de opgegeven werkruimte vermeld. In dit voorbeeld wordt een .netrc-bestand gebruikt.

curl --netrc -X GET https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/list \
| jq '[ .clusters[] | { id: .cluster_id, name: .cluster_name } ]'
[
  {
    "id": "1234-567890-batch123",
    "name": "My Cluster 1"
  },
  {
    "id": "2345-678901-rigs234",
    "name": "My Cluster 2"
  }
]

Compatibiliteit

Antwoorden voor dezelfde API-versie verwijderen geen veld uit de JSON-uitvoer. De API kan echter nieuwe velden toevoegen aan de JSON-uitvoer zonder de API-versie te verhogen. Uw programmatische werkstromen moeten op de hoogte zijn van deze toevoegingen en onbekende velden negeren.

Sommige velden (die foutberichten en beschrijvende berichten bevatten die zijn bedoeld om te worden gebruikt door de gebruikersinterface) zijn ongestructureerd en u mag niet afhankelijk zijn van de indeling van deze velden STRING in programmatische werkstromen.

Gebruik curl om de Databricks-REST API

curl is een populair hulpprogramma voor het overdragen van gegevens van en naar servers. Deze sectie bevat specifieke informatie over het gebruik van curl om de Databricks-REST API.

Een GET-bewerking aanroepen met een queryreeks

Hoewel de meeste API-aanroepen vereisen dat u een JSON-body opgeeft, kunt u voor aanroepen een queryreeks opgeven door deze na en rond de URL tussen aanhalingstekens GET? toe te voeren. Als u gebruikt, kunt u (of ) en (of ) samen met de queryreeks opgeven. U hoeft de URL of de queryreeks niet tussen aanhalingstekens curl--get te -G--data-d plaatsen.

Vervang in de volgende voorbeelden door adb-1234567890123456.7.azuredatabricks.net de adb-1234567890123456.7.azuredatabricks.net van uw Azure Databricks implementatie. Deze moet beginnen met adb- . Gebruik niet de afgeschafte regionale URL die begint met <azure-region-name>. Deze werkt mogelijk niet voor nieuwe werkruimten, is minder betrouwbaar en levert lagere prestaties dan URL's per werkruimte.

In dit voorbeeld wordt informatie over het opgegeven cluster afgedrukt. In dit voorbeeld wordt een .netrc-bestand gebruikt.

Met ? behulp van :

curl --netrc 'https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/get?cluster_id=1234-567890-patch123'

Met --get behulp van en --data :

curl --netrc --get \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/get \
--data cluster_id=1234-567890-batch123
{
  "cluster_id": "1234-567890-batch123",
  "driver": {
    "node_id": "123ab456789012345cd67e8e90123f45",
    "instance_id": "234ab456789012345cd67e8e90123f45",
    "start_timestamp": 1618448261567,
    "host_private_ip": "10.0.0.0",
    "private_ip": "10.0.0.0"
  },
  ...
}

In dit voorbeeld wordt de inhoud van de DBFS-hoofdmap vermeld. In dit voorbeeld wordt een .netrc-bestand gebruikt.

curl --netrc --get \
https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/dbfs/list \
--data path=/
"files": [
  {
    "path": "/tmp",
    "is_dir": true,
    "file_size": 0,
    "modification_time": 1547078156000
  },
  {
    "path": "/my_file.txt",
    "is_dir": false,
    "file_size": 40,
    "modification_time": 1541374426000
  },
  ...
]

Python gebruiken om de Databricks-REST API

requests is een populaire bibliotheek voor het maken van HTTP-aanvragen in Python. In dit voorbeeld wordt de requests bibliotheek gebruikt om informatie weer te geven over de Azure Databricks cluster. In dit voorbeeld wordt een .netrc-bestand gebruikt.

import requests
import json

instance_id = 'adb-1234567890123456.7.azuredatabricks.net'

api_version = '/api/2.0'
api_command = '/clusters/get'
url = f"https://{instance_id}{api_version}{api_command}"

params = {
  'cluster_id': '1234-567890-batch123'
}

response = requests.get(
  url = url,
  params = params
)

print(json.dumps(json.loads(response.text), indent = 2))
{
  "cluster_id": "1234-567890-batch123",
  "driver": {
    ...
  },
  "spark_context_id": 1234567890123456789,
  ...
}

PowerShell gebruiken om de Databricks-REST API

In dit voorbeeld wordt de cmdlet Invoke-RestMethod in PowerShell gebruikt om informatie weer te geven over de opgegeven Azure Databricks cluster.

$Token = 'dapia1b2345678901c23456defa7bcde8fa9'
$ConvertedToken = $Token | ConvertTo-SecureString -AsPlainText -Force

$InstanceID = 'adb-1234567890123456.7.azuredatabricks.net'
$APIVersion = '/api/2.0'
$APICommand = '/clusters/get'
$Uri = "https://$InstanceID$APIVersion$APICommand"

$Body = @{
  'cluster_id' = '1234-567890-batch123'
}

$Response = Invoke-RestMethod `
  -Authentication Bearer `
  -Token $ConvertedToken `
  -Method Get `
  -Uri  $Uri `
  -Body $Body

Write-Output $Response
cluster_id       : 1234-567890-batch123
driver           : ...
spark_context_id : 1234567890123456789
...

Runtime-versiereeksen

Voor veel API-aanroepen moet u een versiereeks voor Databricks Runtime opgeven. In deze sectie wordt de structuur van een versiereeks in de Databricks REST API beschreven.

<M>.<F>.x[-cpu][-esr][-gpu][-ml][-photon][-hls]-scala<scala-version>

waar

  • M: Databricks Runtime hoofdversie
  • F: Databricks Runtime functieversie
  • cpu: CPU-versie (alleen -ml met)
  • esr: Uitgebreide ondersteuning
  • gpu: gpu
  • ml: ml
  • photon: photon
  • hls: hls (afgeschaft)
  • scala-version: versie van Scala die wordt gebruikt voor het compileren van Spark: 2.10, 2.11 of 2.12

Bijvoorbeeld:

  • 7.6.x-gpu-ml-scala2.12vertegenwoordigt Databricks Runtime 7.6 voor Machine Learning, is GPU ingeschakeld en gebruikt Scala-versie 2.12 om Spark-versie 3.0.1 te compileren
  • 6.4.x-esr-scala2.11 vertegenwoordigt Databricks Runtime 6.4 Extended Support en gebruikt Scala-versie 2.11 om Spark-versie 2.4.5 te compileren

De tabellen Ondersteunde Databricks-runtimereleases en ondersteuningsschema's en niet-ondersteunde releases zijn Databricks Runtime aan de Spark-versie in de runtime.

U kunt een lijst met beschikbare runtime-Azure Databricks door de API runtimeversies aan te roepen.

Databricks Light

apache-spark.<M>.<F>.x-scala<scala-version>

waar

  • M: Apache Spark hoofdversie
  • F: Apache Spark functieversie
  • scala-version: versie van Scala die wordt gebruikt voor het compileren van Spark: 2.10 of 2.11

Bijvoorbeeld apache-spark-2.4.x-scala2.11.