Databricks REST API referens
Azure Databricks Data Science Engineering och Databricks Machine Learning tre REST-API:er som utför & olika uppgifter: &2.0och 1.2. Använd API:erna 2.1 och 2.0 för allmän administration. Med API 1.2 kan du köra kommandon direkt på Azure Databricks.
Viktigt
För att få åtkomst till Databricks REST API:er måste du autentisera.
Referensguider för rest-API:er som du använder när du arbetar med Databricks Data Science Engineering och & Databricks Machine Learning-miljöer ingår i det här avsnittet. Du kan också gå direkt till REST API för den senaste versionen eller för version 2.1,2.0eller 1.2. Databricks SQL REST API:er ingår i Databricks SQL-guiden i Databricks SQL API-referens. Databricks Machine Learning även ett Python-API för Funktionslager. Se Databricks Feature Store Python API.
API:er
- Kluster-API 2.0
- API för klusterprinciper 2.0
- DBFS API 2.0
- API 2.0 för globala Init-skript
- Api för grupper 2.0
- API för instanspooler 2.0
- API för IP-åtkomstlista 2.0
- Jobb-API 2.1, 2.0
- Bibliotek API 2.0
- MLflow API 2.0
- Api för behörigheter 2.0
- Repos API 2.0
- SCIM API 2.0
- API för hemligheter 2.0
- Token-API 2.0
- Token API för hantering 2.0
- API för arbetsyta 2.0
- API 1.2
Autentisering
Information om hur du autentiserar till REST API med personlig åtkomsttoken finns i Autentisering med personlig åtkomsttoken i Azure Databricks.
Information om hur du autentiserar till REST API med Azure Active Directory-token finns i Autentisering med Azure Active Directory-token. Exempel finns i Använda en Azure AD-åtkomsttoken för en användare och Använda en Azure AD-åtkomsttoken för ett huvudnamn för tjänsten.
API-exempel finns i API-exempel.
Hastighetsbegränsningar
I syfte att säkerställa hög tjänstkvalitet vid tung belastning framtvingar Databricks hastighetsgränser för alla REST-API-anrop. Gränser anges per slutpunkt och per arbetsyta så att rättvis användning och hög tillgänglighet säkerställs. Om du vill begära en gränsökning kontaktar du din Databricks-representant.
Begäranden som överskrider hastighetsgränsen returnerar svarsstatuskod 429.
Parsa utdata
Det kan vara användbart att analysera (parsa) delar av JSON-utdata. Databricks rekommenderar verktyget för jq att parsa JSON. Du kan installera jq på Linux via jqpå macOS med Homebrew med eller på Windows brew install jq med Chocolatey med choco install jq . Mer information om jq finns i jq.
I det här exemplet visas namnen och ID:erna för tillgängliga kluster på den angivna arbetsytan. I det här exemplet används .netrc-filen.
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"
}
]
Kompatibilitet
Svar för samma API-version tar inte bort några fält från JSON-utdata. API:et kan dock lägga till nya fält i JSON-utdata utan att öka API-versionen. Dina programmatiska arbetsflöden måste vara medvetna om dessa tillägg och ignorera okända fält.
Vissa fält (som innehåller fel och beskrivande meddelanden som är avsedda att användas av användargränssnittet) är ostrukturerade och du bör inte vara beroende av formatet för dessa fält i STRING programmässiga arbetsflöden.
Använda curl för att anropa Databricks-REST API
curl är ett populärt verktyg för att överföra data till och från servrar. Det här avsnittet innehåller specifik information om hur du använder curl för att anropa Databricks-REST API.
Anropa en GET med en frågesträng
De flesta API-anrop kräver att du anger en JSON-brödtext, men för anrop kan du ange en frågesträng genom att lägga till den efter och omge GET? URL:en inom citattecken. Om du använder kan du ange (eller ) och (eller ) tillsammans med curl frågesträngen. Du behöver inte omge URL:en eller frågesträngen --get-G med --data-d citattecken.
I följande exempel ersätter du adb-1234567890123456.7.azuredatabricks.net med adb-1234567890123456.7.azuredatabricks.net för Azure Databricks distributionen. Det bör börja med adb- . Använd inte den föråldrade regionala webbadressen som börjar med <azure-region-name>. Den kanske inte fungerar för nya arbetsytor, är mindre tillförlitligt och ger lägre prestanda än webbadresser per arbetsyta.
Det här exemplet skriver ut information om det angivna klustret. I det här exemplet används .netrc-filen.
Med hjälp av ? :
curl --netrc 'https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/get?cluster_id=1234-567890-patch123'
Använda --get och --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"
},
...
}
Det här exemplet visar innehållet i DBFS-roten. I det här exemplet används .netrc-filen.
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
},
...
]
Använda Python för att anropa Databricks-REST API
requests är ett populärt bibliotek för att göra HTTP-begäranden i Python. I det här exemplet requests används biblioteket för att visa information om Azure Databricks kluster. I det här exemplet används .netrc-filen.
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,
...
}
Använda PowerShell för att anropa Databricks-REST API
I det här exemplet används cmdleten Invoke-RestMethod i PowerShell för att visa information om det Azure Databricks klustret.
$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
...
Strängar för körningsversion
Många API-anrop kräver att du anger en versionssträng för Databricks-körning. I det här avsnittet beskrivs strukturen för en versionssträng i Databricks REST API.
<M>.<F>.x[-cpu][-esr][-gpu][-ml][-photon][-hls]-scala<scala-version>
var
M: Databricks Runtime större versionF: Databricks Runtime funktionsutgågå aktuellacpu: CPU-version (endast-mlmed)esr: Utökad supportgpu:gpuml:mlphoton:photonhls:hls(inaktuell)scala-version: version av Scala som används för att kompilera Spark: 2.10, 2.11 eller 2.12
Exempel:
7.6.x-gpu-ml-scala2.12representerar Databricks Runtime 7.6 för Machine Learning, är GPU-aktiverad och använder Scala version 2.12 för att kompilera Spark-version 3.0.16.4.x-esr-scala2.11representerar Databricks Runtime 6.4 utökat stöd och använder Scala version 2.11 för att kompilera Spark version 2.4.5
De Databricks-körningsversioner som stöds och supportschemat och versionstabellerna som inte stöds mappar Databricks Runtime versioner till Spark-versionen som ingår i körningen.
Du kan hämta en lista över tillgängliga Azure Databricks för körningsversion genom att anropa API:et för körningsversioner.
Databricks Light
apache-spark.<M>.<F>.x-scala<scala-version>
var
M: Apache Spark större versionF: Apache Spark av funktionerscala-version: version av Scala som används för att kompilera Spark: 2.10 eller 2.11
Till exempel apache-spark-2.4.x-scala2.11.