Referencia de api rest de Databricks
Azure Databricks Data Science Engineering y Databricks Machine Learning tienen tres API REST que realizan tareas & diferentes: &2.0y 1.2. Para la administración general, use las API 2.1 y 2.0. API 1.2 permite ejecutar comandos directamente en Azure Databricks.
Importante
Para acceder a las API REST de Databricks, es preciso autenticarse.
En esta sección se incluyen guías de referencia para las API REST que se usan al trabajar con los entornos data science engineering y & databricks Machine Learning databricks. También puede ir directamente a las páginas principales de la API REST para la versión más reciente o para las versiones 2.1,2.0o 1.2. Las API REST de Databricks SQL se incluyen en la guía de Databricks SQL en la referencia de Databricks SQL API. Databricks Machine Learning también proporciona una API de Python para Feature Store; consulte Api de Python del Almacén de características de Databricks.
API existentes
- API de clústeres 2.0
- API de directivas de clúster 2.0
- DBFS API 2.0
- API global de scripts de init 2.0
- API de grupos 2.0
- API de grupos de instancias 2.0
- IP Access List API 2.0
- API de trabajos 2.1,2.0
- API de bibliotecas 2.0
- MLflow API 2.0
- API de permisos 2.0
- Repos API 2.0
- SCIM API 2.0
- SECRETS API 2.0
- API de token 2.0
- Token API de Administración 2.0
- API del área de trabajo 2.0
- API 1.2
Authentication
Para obtener información sobre la autenticación en la API REST mediante tokens de acceso personal, consulte Autenticación mediante tokens de acceso personal de Azure Databricks.
Para obtener información sobre la autenticación en la API REST mediante tokens de Azure Active Directory, consulte Autenticación mediante tokens de Azure Active Directory. Para obtener ejemplos, consulte Uso de un token de acceso de Azure AD para un usuario y Uso de un token de acceso de Azure AD para una entidad de servicio.
Para obtener ejemplos de API, vea Ejemplos de API.
Límites de frecuencia
Para garantizar una servicio de alta calidad cuando hay mucha carga, Databricks hace cumplir los límites de velocidad en todas las llamadas de la API REST. Los límites se establecen por punto de conexión y por área de trabajo, con el fin de garantizar que el uso es uso justo y que hay una alta disponibilidad. Para solicitar un aumento del límite, póngase en contacto con su representante de Databricks.
Las solicitudes que superan el límite de frecuencia devuelven un código de estado de respuesta 429.
Análisis de la salida
Puede ser útil analizar las distintas partes de la salida JSON. Databricks recomienda la utilidad jq para analizar código JSON. Puede instalar en jq Linux a través de jqen macOS mediante Homebrew con o Windows brew install jq mediante Chocolatey con choco install jq . Para obtener más información sobre jq , vea el manual de jq.
En este ejemplo se enumeran los nombres y los identificadores de los clústeres disponibles en el área de trabajo especificada. En este ejemplo se usa un archivo .netrc.
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"
}
]
Compatibilidad
Las respuestas para la misma versión de API no quitarán ningún campo de la salida JSON. Sin embargo, la API podría agregar nuevos campos a la salida JSON sin incrementar la versión de la API. Los flujos de trabajo de programación deben tener en cuenta estas adiciones y omitir los campos desconocidos.
Algunos campos de STRING (que contienen mensajes de error y descriptivos destinados a usarse en la interfaz de usuario) no están estructurados y no debería depender del formato de estos campos en sus flujos de trabajo de programación.
Uso de curl para invocar a la API REST de Databricks
curl es una herramienta popular para transferir datos hacia y desde servidores. En esta sección se proporciona información específica sobre el uso de curl para invocar a la API REST de Databricks.
Invocación de una instrucción GET mediante una cadena de consulta
Aunque la mayoría de las llamadas de API requieren que especifique un cuerpo JSON, para las llamadas GET puede especificar una cadena de consulta mediante su anexión después del símbolo ? y rodeando la dirección URL entre comillas. Si usa , puede especificar (o ) y (o ) junto con la cadena de consulta; no es necesario rodear la dirección URL o la cadena de consulta curl--get entre -G--data-d comillas.
En los ejemplos siguientes, reemplace por la dirección URL del área adb-1234567890123456.7.azuredatabricks.netadb-1234567890123456.7.azuredatabricks.net trabajo de la Azure Databricks implementación. Debe empezar por adb-. No use la dirección URL regional en desuso que comienza por <azure-region-name>. Es posible que no funcione en las nuevas áreas de trabajo, que sea menos confiable y que muestre un rendimiento inferior al de las direcciones URL por área de trabajo.
En este ejemplo, se imprime información sobre el clúster especificado. En este ejemplo se usa un archivo .netrc.
Usar ?:
curl --netrc 'https://adb-1234567890123456.7.azuredatabricks.net/api/2.0/clusters/get?cluster_id=1234-567890-patch123'
Mediante --get y --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"
},
...
}
En este ejemplo se enumera el contenido de la raíz de DBFS. En este ejemplo se usa un archivo .netrc.
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
},
...
]
Uso de Python para invocar a la API REST de Databricks
requests es una biblioteca popular para realizar solicitudes HTTP en Python. En este ejemplo, se usa la biblioteca requests para mostrar información sobre el clúster de Azure Databricks especificado. En este ejemplo se usa un archivo .netrc.
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,
...
}
Uso de PowerShell para invocar a la API REST de Databricks
En este ejemplo, se usa el cmdlet Invoke-RestMethod de PowerShell para mostrar información sobre el clúster de Azure Databricks especificado.
$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
...
Cadenas de la versión del runtime
Muchas llamadas API requieren que se especifique una cadena de la versión del runtime de Databricks. En esta sección se describe la estructura de una cadena de versión en la API REST de Databricks.
<M>.<F>.x[-cpu][-esr][-gpu][-ml][-photon][-hls]-scala<scala-version>
, donde
M: versión principal de Databricks RuntimeF: versión de actualización de características de Databricks Runtimecpu: versión de CPU (solo con-ml)esr: soporte extendidogpu:gpuml:mlphoton:photonhls:hls(en desuso)scala-version: versión de Scala utilizada para compilar Spark: 2.10, 2.11 o 2.12
Por ejemplo:
7.6.x-gpu-ml-scala2.12representa Databricks Runtime 7.6 para Machine Learning, está habilitada para GPU y usa la versión 2.12 de Scala para compilar la versión 3.0.1 de Spark6.4.x-esr-scala2.11representa el soporte extendido de Databricks Runtime 6.4 y usa la versión 2.11 de Scala para compilar la versión 2.4.5 de Spark
Las tablas con la programación de soporte técnico y las versiones de Databricks Runtime compatibles, y las versiones no compatibles asignan versiones de Databricks Runtime a la versión de Spark que se encuentra en el runtime.
Para obtener una lista de las cadenas de la versión del runtime de Azure Databricks disponibles, llame a Runtime versions API.
Databricks Light
apache-spark.<M>.<F>.x-scala<scala-version>
, donde
M: versión principal de Apache SparkF: versión de actualización de características de Apache Sparkscala-version: versión de Scala utilizada para compilar Spark: 2.10 o 2.11
Por ejemplo, apache-spark-2.4.x-scala2.11.