Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Notitie
Databricks raadt Databricks Asset Bundles aan voor het maken, ontwikkelen, implementeren en testen van taken en andere Databricks-resources als broncode. Bekijk wat zijn Databricks Asset Bundles?.
In dit artikel leert u hoe u Azure Databricks-bewerkingen automatiseert en de ontwikkeling versnelt met de Databricks SDK voor Python. Dit artikel is een aanvulling op de Databricks SDK voor Python-documentatie over De Docs en de codevoorbeelden in de Databricks SDK voor Python-opslagplaats in GitHub.
Notitie
De Databricks SDK voor Python is bèta en mag niet worden gebruikt in productie.
Tijdens de bètaperiode raadt Databricks u aan een afhankelijkheid vast te maken van de specifieke secundaire versie van de Databricks SDK voor Python waarvan uw code afhankelijk is. U kunt bijvoorbeeld afhankelijkheden vastmaken in bestanden zoals requirements.txt voor venv, of pyproject.toml voor poetry.lock Poëzie. Zie Virtual Environments and Packages for , or Installing dependencies for Poetry (Afhankelijkheden voor poëzie installeren) voor meer informatie over het vastmaken van afhankelijkhedenvenv.
Voordat u begint
U kunt de Databricks SDK voor Python gebruiken vanuit een Azure Databricks-notebook of vanaf uw lokale ontwikkelcomputer.
- Als u de Databricks SDK voor Python wilt gebruiken vanuit een Azure Databricks-notebook, gaat u verder met de Databricks SDK voor Python vanuit een Azure Databricks-notebook.
- Als u de Databricks SDK voor Python wilt gebruiken vanaf uw lokale ontwikkelcomputer, voert u de stappen in deze sectie uit.
Voordat u begint met het gebruik van de Databricks SDK voor Python, moet uw ontwikkelcomputer over het volgende beschikken:
- Azure Databricks-verificatie geconfigureerd.
- Python 3.8 of hoger geïnstalleerd. Voor het automatiseren van Azure Databricks-rekenresources raadt Databricks aan dat u de primaire en secundaire versies van Python hebt geïnstalleerd die overeenkomen met de versie die is geïnstalleerd op uw Azure Databricks-rekenresource. De voorbeelden van dit artikel zijn afhankelijk van het automatiseren van clusters met Databricks Runtime 13.3 LTS, waarop Python 3.10 is geïnstalleerd. Zie voor de juiste versie de release-opmerkingen over versies en compatibiliteit van Databricks Runtime voor de Databricks Runtime-versie van uw cluster.
- Databricks raadt u aan een virtuele Python-omgeving te maken en te activeren voor elk Python-project dat u gebruikt met de Databricks SDK voor Python. Virtuele Python-omgevingen helpen ervoor te zorgen dat uw codeproject compatibele versies van Python- en Python-pakketten gebruikt (in dit geval de Databricks SDK voor Python-pakket). Zie venv of Poëzie voor meer informatie over virtuele Python-omgevingen.
Aan de slag met de Databricks SDK voor Python
In deze sectie wordt beschreven hoe u aan de slag gaat met de Databricks SDK voor Python vanaf uw lokale ontwikkelcomputer. Als u de Databricks SDK voor Python wilt gebruiken vanuit een Azure Databricks-notebook, gaat u verder met de Databricks SDK voor Python vanuit een Azure Databricks-notebook.
Installeer op uw ontwikkelcomputer waarvoor Azure Databricks-verificatie is geconfigureerd, Python al is geïnstalleerd en uw virtuele Python-omgeving al is geactiveerd het databricks-sdk-pakket (en de bijbehorende afhankelijkheden) van de Python Package Index (PyPI), als volgt:
Venv
Gebruik
pipdit om hetdatabricks-sdkpakket te installeren. (Op sommige systemen moet u mogelijk hier en overal vervangen doorpip3pip.)pip3 install databricks-sdkPoëzie
poetry add databricks-sdkZie de releasegeschiedenis van het pakket om een specifieke versie van het
databricks-sdkpakket te installeren terwijl de Databricks SDK voor Python zich in de bètaversie bevindt. Als u bijvoorbeeld versie0.1.6wilt installeren:Venv
pip3 install databricks-sdk==0.1.6Poëzie
poetry add databricks-sdk==0.1.6Als u een bestaande installatie van het Databricks SDK-pakket voor Python wilt upgraden naar de nieuwste versie, voert u de volgende opdracht uit:
Venv
pip3 install --upgrade databricks-sdkPoëzie
poetry add databricks-sdk@latestVoer de volgende opdracht uit om het huidige
Versionvan het Databricks SDK voor Python pakket en andere details weer te geven.Venv
pip3 show databricks-sdkPoëzie
poetry show databricks-sdkMaak in uw virtuele Python-omgeving een Python-codebestand waarmee de Databricks SDK voor Python wordt geïmporteerd. In het volgende voorbeeld, in een bestand met de naam
main.pymet de volgende inhoud, worden alle clusters in uw Azure Databricks-werkruimte weergegeven:from databricks.sdk import WorkspaceClient w = WorkspaceClient() for c in w.clusters.list(): print(c.cluster_name)Voer uw Python-codebestand uit, ervan uitgaande van een bestand met de naam
main.py, door de opdracht uit tepythonvoeren:Venv
python3.10 main.pyPoëzie
Als u zich in de shell van de virtuele omgeving bevindt:
python3.10 main.pyAls u zich niet in de shell van de virtuele omgeving bevindt:
poetry run python3.10 main.pyNotitie
Door geen argumenten in de voorgaande aanroep in te
w = WorkspaceClient()stellen, gebruikt de Databricks SDK voor Python het standaardproces voor het uitvoeren van Azure Databricks-verificatie. Als u dit standaardgedrag wilt overschrijven, raadpleegt u de volgende verificatiesectie .
De Databricks SDK voor Python verifiëren met uw Azure Databricks-account of -werkruimte
In deze sectie wordt beschreven hoe u de Databricks SDK voor Python kunt verifiëren vanaf uw lokale ontwikkelcomputer naar uw Azure Databricks-account of -werkruimte. Als u de Databricks SDK voor Python wilt verifiëren vanuit een Azure Databricks-notebook, gaat u verder met de Databricks SDK voor Python vanuit een Azure Databricks-notebook.
De Databricks SDK voor Python implementeert de geïntegreerde verificatiestandaard van Databricks , een geconsolideerde en consistente architectuur en programmatische benadering voor verificatie. Deze aanpak helpt bij het instellen en automatiseren van verificatie met Azure Databricks gecentraliseerder en voorspelbaarder. Hiermee kunt u Databricks-verificatie eenmaal configureren en deze configuratie vervolgens gebruiken voor meerdere Databricks-hulpprogramma's en SDK's zonder verdere verificatieconfiguratiewijzigingen. Zie Voor meer informatie, inclusief meer volledige codevoorbeelden in Python, geïntegreerde Databricks-verificatie.
Notitie
De Databricks SDK voor Python heeft Verificatie nog niet geïmplementeerd met door Azure beheerde identiteiten.
Enkele van de beschikbare coderingspatronen voor het initialiseren van Databricks-verificatie met de Databricks SDK voor Python zijn:
Gebruik databricks-standaardverificatie door een van de volgende handelingen uit te voeren:
- Maak of identificeer een aangepast Databricks-configuratieprofiel met de vereiste velden voor het doelverificatietype Databricks. Stel vervolgens de omgevingsvariabele
DATABRICKS_CONFIG_PROFILEin op de naam van het aangepaste configuratieprofiel. - Stel de vereiste omgevingsvariabelen in voor het doelverificatietype Databricks.
Maak vervolgens als volgt een instantie van een
WorkspaceClientobject met databricks-standaardverificatie:from databricks.sdk import WorkspaceClient w = WorkspaceClient() # ...- Maak of identificeer een aangepast Databricks-configuratieprofiel met de vereiste velden voor het doelverificatietype Databricks. Stel vervolgens de omgevingsvariabele
Het hard coderen van de vereiste velden wordt ondersteund, maar wordt niet aanbevolen, omdat het risico loopt dat gevoelige informatie in uw code wordt weergegeven, zoals persoonlijke toegangstokens van Azure Databricks. In het volgende voorbeeld worden azure Databricks-host- en toegangstokenwaarden vastgelegd voor databricks-tokenverificatie:
from databricks.sdk import WorkspaceClient w = WorkspaceClient( host = 'https://...', token = '...' ) # ...
Zie ook verificatie in de Databricks SDK voor Python-documentatie.
De Databricks SDK voor Python gebruiken vanuit een Azure Databricks-notebook
U kunt de Databricks SDK voor Python-functionaliteit aanroepen vanuit een Azure Databricks-notebook met een gekoppeld Azure Databricks-cluster waarop de Databricks SDK voor Python is geïnstalleerd. Deze wordt standaard geïnstalleerd op alle Azure Databricks-clusters die gebruikmaken van Databricks Runtime 13.3 LTS of hoger. Voor Azure Databricks-clusters die Databricks Runtime 12.2 LTS en hieronder gebruiken, moet u eerst de Databricks SDK voor Python installeren. Zie stap 1: De Databricks SDK voor Python installeren of upgraden.
Als u de Databricks SDK voor Python-versie wilt zien die is geïnstalleerd voor een specifieke Databricks Runtime-versie, raadpleegt u de sectie Geïnstalleerde Python-bibliotheken van de releaseopmerkingen van Databricks Runtime voor die versie.
Databricks raadt u aan om de nieuwste beschikbare versie van de SDK van PiPy te installeren, maar minimaal te installeren of upgraden naar Databricks SDK voor Python 0.6.0 of hoger, omdat standaardverificatie van Azure Databricks-notebooks wordt gebruikt door versie 0.6.0 en hoger op alle Databricks Runtime-versies.
Notitie
Databricks Runtime 15.1 is de eerste Databricks Runtime waarop een versie van de Databricks SDK voor Python (0.20.0) is geïnstalleerd die ondersteuning biedt voor standaardnotitieblokverificatie zonder upgrade vereist.
De volgende tabel bevat een overzicht van ondersteuning voor notebookverificatie voor Databricks SDK voor Python- en Databricks Runtime-versies:
| SDK/Databricks Runtime | 10.4 LTS | 11.3 LTS | 12.3 LTS | 13.3 LTS | 14.3 LTS | 15.1 en hoger |
|---|---|---|---|---|---|---|
| 0.1.7 en lager | ||||||
| 0.1.10 | ✓ | ✓ | ✓ | ✓ | ✓ | |
| 0.6.0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| 0.20.0 en hoger | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Standaardverificatie van Azure Databricks-notebooks is afhankelijk van een tijdelijk persoonlijk Azure Databricks-toegangstoken dat azure Databricks automatisch op de achtergrond genereert voor eigen gebruik. Azure Databricks verwijdert dit tijdelijke token nadat het notebook niet meer actief is.
Belangrijk
- Standaardverificatie van Azure Databricks-notebooks werkt alleen op het stuurprogrammaknooppunt van het cluster en niet op een van de werk- of uitvoerknooppunten van het cluster.
- Verificatie van Azure Databricks-notebook werkt niet met Azure Databricks-configuratieprofielen.
- Verificatie van Azure Databricks-notebook werkt niet met Databricks Container Services.
Als u API's op accountniveau van Azure Databricks wilt aanroepen of als u een ander Databricks-verificatietype wilt gebruiken dan standaardverificatie voor Databricks-notebooks, worden de volgende verificatietypen ook ondersteund:
| Verificatietype | Databricks SDK voor Python-versies |
|---|---|
| OAuth-verificatie van machine-naar-machine (M2M) | 0.18.0 en hoger |
| OAuth-verificatie van gebruiker naar machine (U2M) | 0.19.0 en hoger |
| Verificatie van Microsoft Entra-ID Service-principal | Alle versies |
| Azure CLI-verificatie | Alle versies |
| Verificatie van persoonlijke toegangstokens van Databricks | Alle versies |
Verificatie van door Azure beheerde identiteiten wordt nog niet ondersteund.
Stap 1: De Databricks SDK voor Python installeren of upgraden
Notitie
Databricks SDK voor Python is standaard geïnstalleerd op alle Azure Databricks-clusters die gebruikmaken van Databricks Runtime 13.3 LTS of hoger.
Azure Databricks Python-notebooks kunnen de Databricks SDK voor Python gebruiken, net als elke andere Python-bibliotheek. Als u de Databricks SDK voor Python-bibliotheek wilt installeren of upgraden op het gekoppelde Azure Databricks-cluster, voert u de
%pipmagic-opdracht uit vanuit een notebookcel als volgt:%pip install databricks-sdk --upgradeNadat u de
%pipmagic-opdracht hebt uitgevoerd, moet u Python opnieuw starten om de geïnstalleerde of bijgewerkte bibliotheek beschikbaar te maken voor het notebook. Voer hiervoor de volgende opdracht uit vanuit een notebookcel direct na de cel met de%pipmagic-opdracht:dbutils.library.restartPython()Als u de geïnstalleerde versie van de Databricks SDK voor Python wilt weergeven, voert u de volgende opdracht uit vanuit een notebookcel:
%pip show databricks-sdk | grep -oP '(?<=Version: )\S+'
Stap 2: Uw code uitvoeren
Maak in uw notebookcellen Python-code die de Databricks SDK voor Python importeert en vervolgens aanroept. In het volgende voorbeeld wordt standaardverificatie van Azure Databricks-notebook gebruikt om alle clusters in uw Azure Databricks-werkruimte weer te geven:
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
for c in w.clusters.list():
print(c.cluster_name)
Wanneer u deze cel uitvoert, wordt er een lijst weergegeven met de namen van alle beschikbare clusters in uw Azure Databricks-werkruimte.
Als u een ander verificatietype van Azure Databricks wilt gebruiken, raadpleegt u Autorisatiemethoden en klikt u op de bijbehorende koppeling voor aanvullende technische details.
Databricks-hulpprogramma's gebruiken
U kunt Databricks Utilities gebruiken vanuit Databricks SDK voor Python-code die wordt uitgevoerd op uw lokale ontwikkelcomputer of vanuit een Azure Databricks-notebook.
- Vanaf uw lokale ontwikkelcomputer heeft Databricks Utilities alleen toegang tot de
dbutils.fs,dbutils.secretsendbutils.widgetsdbutils.jobsopdrachtgroepen. - Vanuit een Azure Databricks-notebook die is gekoppeld aan een Azure Databricks-cluster, heeft Databricks Utilities toegang tot alle beschikbare Databricks Utilities-opdrachtgroepen, maar de
dbutils.notebookopdrachtgroep is beperkt tot slechts twee niveaus van opdrachten, bijvoorbeelddbutils.notebook.runofdbutils.notebook.exit.
Als u Databricks Utilities wilt aanroepen vanaf uw lokale ontwikkelcomputer of een Azure Databricks-notebook, gebruikt u dbutils binnen WorkspaceClient. In dit codevoorbeeld wordt standaardverificatie voor Azure Databricks-notebooks gebruikt om dbutils aan te roepen binnen WorkspaceClient om de paden van alle objecten in de DBFS-hoofdmap van de werkruimte weer te geven.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
d = w.dbutils.fs.ls('/')
for f in d:
print(f.path)
U kunt ook rechtstreeks bellen dbutils . U bent echter beperkt tot het gebruik van standaardverificatie van Azure Databricks-notebooks. In dit codevoorbeeld wordt dbutils rechtstreeks aanroepen om alle objecten in de DBFS-hoofdmap van de werkruimte weer te geven.
from databricks.sdk.runtime import *
d = dbutils.fs.ls('/')
for f in d:
print(f.path)
Gebruik in filesom toegang te krijgen tot WorkspaceClient. Zie Bestanden beheren in Unity Catalog volumes. U kunt dbutils niet zelf of binnen WorkspaceClient gebruiken om toegang te krijgen tot volumes.
Zie ook Interactie met dbutils.
Codevoorbeelden
In de volgende codevoorbeelden ziet u hoe u de Databricks SDK voor Python gebruikt om clusters te maken en te verwijderen, taken uit te voeren en groepen op accountniveau weer te geven. In deze codevoorbeelden wordt standaardverificatie voor Azure Databricks-notebooks gebruikt. Zie De Databricks SDK voor Python gebruiken vanuit een Azure Databricks-notebook voor meer informatie over de standaardverificatie van Azure Databricks-notebooks. Zie De Databricks SDK voor Python verifiëren met uw Azure Databricks-account of -werkruimte voor meer informatie over standaardverificatie buiten notebooks.
Zie de voorbeelden in de Databricks SDK voor Python-opslagplaats in GitHub voor aanvullende codevoorbeelden . Zie ook:
- Een cluster maken
- Een cluster definitief verwijderen
- Een taak maken
- Een taak maken die gebruikmaakt van serverloze compute
- Bestanden beheren in Unity Catalog volumes
- Groepen op accountniveau weergeven
Een cluster maken
In dit codevoorbeeld wordt een cluster gemaakt met de opgegeven Databricks Runtime-versie en het type clusterknooppunt. Dit cluster heeft één werkrol en het cluster wordt na 15 minuten niet-actieve tijd automatisch beëindigd.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
print("Attempting to create cluster. Please wait...")
c = w.clusters.create_and_wait(
cluster_name = 'my-cluster',
spark_version = '12.2.x-scala2.12',
node_type_id = 'Standard_DS3_v2',
autotermination_minutes = 15,
num_workers = 1
)
print(f"The cluster is now ready at " \
f"{w.config.host}#setting/clusters/{c.cluster_id}/configuration\n")
Een cluster definitief verwijderen
In dit codevoorbeeld wordt het cluster definitief verwijderd met de opgegeven cluster-id uit de werkruimte.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
c_id = input('ID of cluster to delete (for example, 1234-567890-ab123cd4): ')
w.clusters.permanent_delete(cluster_id = c_id)
Een taak maken
In dit codevoorbeeld wordt een Azure Databricks-taak gemaakt waarmee het opgegeven notebook op het opgegeven cluster wordt uitgevoerd. Terwijl de code draait, haalt het het pad van het bestaande notebook, de bestaande cluster-ID en de gerelateerde taakinstellingen van de gebruiker in de terminal op.
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.jobs import Task, NotebookTask, Source
w = WorkspaceClient()
job_name = input("Some short name for the job (for example, my-job): ")
description = input("Some short description for the job (for example, My job): ")
existing_cluster_id = input("ID of the existing cluster in the workspace to run the job on (for example, 1234-567890-ab123cd4): ")
notebook_path = input("Workspace path of the notebook to run (for example, /Users/someone@example.com/my-notebook): ")
task_key = input("Some key to apply to the job's tasks (for example, my-key): ")
print("Attempting to create the job. Please wait...\n")
j = w.jobs.create(
name = job_name,
tasks = [
Task(
description = description,
existing_cluster_id = existing_cluster_id,
notebook_task = NotebookTask(
base_parameters = dict(""),
notebook_path = notebook_path,
source = Source("WORKSPACE")
),
task_key = task_key
)
]
)
print(f"View the job at {w.config.host}/#job/{j.job_id}\n")
Een taak maken die gebruikmaakt van serverloze compute
In het volgende voorbeeld wordt een taak gemaakt die gebruikmaakt van serverloze compute voor taken:
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.jobs import NotebookTask, Source, Task
w = WorkspaceClient()
j = w.jobs.create(
name = "My Serverless Job",
tasks = [
Task(
notebook_task = NotebookTask(
notebook_path = "/Users/someone@example.com/MyNotebook",
source = Source("WORKSPACE")
),
task_key = "MyTask",
)
]
)
Bestanden beheren in Unity Catalog-volumes
In dit codevoorbeeld ziet u verschillende aanroepen naar files functionaliteit binnen WorkspaceClient voor toegang tot een Unity Catalog volume.
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
# Define volume, folder, and file details.
catalog = 'main'
schema = 'default'
volume = 'my-volume'
volume_path = f"/Volumes/{catalog}/{schema}/{volume}" # /Volumes/main/default/my-volume
volume_folder = 'my-folder'
volume_folder_path = f"{volume_path}/{volume_folder}" # /Volumes/main/default/my-volume/my-folder
volume_file = 'data.csv'
volume_file_path = f"{volume_folder_path}/{volume_file}" # /Volumes/main/default/my-volume/my-folder/data.csv
upload_file_path = './data.csv'
# Create an empty folder in a volume.
w.files.create_directory(volume_folder_path)
# Upload a file to a volume.
with open(upload_file_path, 'rb') as file:
file_bytes = file.read()
binary_data = io.BytesIO(file_bytes)
w.files.upload(volume_file_path, binary_data, overwrite = True)
# List the contents of a volume.
for item in w.files.list_directory_contents(volume_path):
print(item.path)
# List the contents of a folder in a volume.
for item in w.files.list_directory_contents(volume_folder_path):
print(item.path)
# Print the contents of a file in a volume.
resp = w.files.download(volume_file_path)
print(str(resp.contents.read(), encoding='utf-8'))
# Delete a file from a volume.
w.files.delete(volume_file_path)
# Delete a folder from a volume.
w.files.delete_directory(volume_folder_path)
Groepen op accountniveau weergeven
In dit codevoorbeeld worden de weergavenamen voor alle beschikbare groepen in het Azure Databricks-account weergegeven.
Notitie
Authenticatie specifiek voor notebooks wordt niet ondersteund voor AccountClient, daarom moet u inloggegevens instellen in de constructor om dit voorbeeld in een notebook uit te voeren.
from databricks.sdk import AccountClient
a = AccountClient()
for g in a.groups.list():
print(g.display_name)
Testen
Als u uw code wilt testen, gebruikt u Python-testframeworks zoals pytest. Als u uw code wilt testen onder gesimuleerde omstandigheden zonder Azure Databricks REST API-eindpunten aan te roepen of de status van uw Azure Databricks-accounts of -werkruimten te wijzigen, gebruikt u Python-mockbibliotheken zoals unittest.mock.
Aanbeveling
Databricks Labs biedt een pytest-invoegtoepassing om integratietests met Databricks en een pylint-invoegtoepassing te vereenvoudigen om codekwaliteit te garanderen.
Het volgende voorbeeldbestand met de naam helpers.py bevat een create_cluster functie die informatie retourneert over het nieuwe cluster:
# helpers.py
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.compute import ClusterDetails
def create_cluster(
w: WorkspaceClient,
cluster_name: str,
spark_version: str,
node_type_id: str,
autotermination_minutes: int,
num_workers: int
) -> ClusterDetails:
response = w.clusters.create(
cluster_name = cluster_name,
spark_version = spark_version,
node_type_id = node_type_id,
autotermination_minutes = autotermination_minutes,
num_workers = num_workers
)
return response
Op basis van het volgende bestand met de naam main.py waarmee de create_cluster functie wordt aangeroepen:
# main.py
from databricks.sdk import WorkspaceClient
from helpers import *
w = WorkspaceClient()
# Replace <spark-version> with the target Spark version string.
# Replace <node-type-id> with the target node type string.
response = create_cluster(
w = w,
cluster_name = 'Test Cluster',
spark_version = '<spark-version>',
node_type_id = '<node-type-id>',
autotermination_minutes = 15,
num_workers = 1
)
print(response.cluster_id)
Het volgende bestand met de naam test_helpers.py test of de create_cluster functie het verwachte antwoord retourneert. In plaats van een cluster te maken in de doelwerkruimte, wordt met deze test een WorkspaceClient object gesimuleerd, worden de instellingen van het gesimuleerde object gedefinieerd en wordt het gesimuleerde object vervolgens doorgegeven aan de create_cluster functie. De test controleert vervolgens of de functie de verwachte id van het nieuwe gesimuleerde cluster retourneert.
# test_helpers.py
from databricks.sdk import WorkspaceClient
from helpers import *
from unittest.mock import create_autospec # Included with the Python standard library.
def test_create_cluster():
# Create a mock WorkspaceClient.
mock_workspace_client = create_autospec(WorkspaceClient)
# Set the mock WorkspaceClient's clusters.create().cluster_id value.
mock_workspace_client.clusters.create.return_value.cluster_id = '123abc'
# Call the actual function but with the mock WorkspaceClient.
# Replace <spark-version> with the target Spark version string.
# Replace <node-type-id> with the target node type string.
response = create_cluster(
w = mock_workspace_client,
cluster_name = 'Test Cluster',
spark_version = '<spark-version>',
node_type_id = '<node-type-id>',
autotermination_minutes = 15,
num_workers = 1
)
# Assert that the function returned the mocked cluster ID.
assert response.cluster_id == '123abc'
Als u deze test wilt uitvoeren, voert u de pytest opdracht uit vanuit de hoofdmap van het codeproject, wat testresultaten moet opleveren die vergelijkbaar zijn met de volgende:
$ pytest
=================== test session starts ====================
platform darwin -- Python 3.12.2, pytest-8.1.1, pluggy-1.4.0
rootdir: <project-rootdir>
collected 1 item
test_helpers.py . [100%]
======================== 1 passed ==========================
Probleemoplossingsproces
In deze sectie worden oplossingen beschreven voor veelvoorkomende problemen met de Databricks SDK voor Python.
Als u problemen of andere feedback wilt melden, maakt u een GitHub-probleem voor de Databricks SDK voor Python.
Fout: Kan antwoord niet parseren
Als u de volgende fout krijgt bij het gebruik van de Databricks SDK voor Python, geeft dit bijna altijd een probleem aan met uw verificatieconfiguratie.
Error: unable to parse response. This is likely a bug in the Databricks SDK for Python or the underlying REST API.
Als deze fout optreedt, controleert u het volgende:
- Zorg ervoor dat uw Databricks-host juist is ingesteld.
- Controleer of de verificatiemethode de vereiste machtigingen heeft voor de API-bewerking die u probeert uit te voeren.
- Als u zich achter een bedrijfsfirewall bevindt, controleert u of het API-verkeer niet wordt geblokkeerd of omgeleid.
Een veelvoorkomende oorzaak van deze fout is het omleiden van de SDK naar een aanmeldingspagina, die de SDK niet kan verwerken. Dit gebeurt meestal wanneer u toegang probeert te krijgen tot een privékoppeling-werkruimte die is geconfigureerd zonder openbare internettoegang vanuit een ander netwerk dan het VPC-eindpunt.
Zie voor meer informatie:
Aanvullende bronnen
Zie voor meer informatie:
- Documentatie voor Databricks SDK voor Python
- Aanvullende codevoorbeelden
- Naslaginformatie over Databricks Workspace-API's
- Naslaginformatie over Databricks-account-API's
- Logboekregistratie
- Langlopende bewerkingen
- Gepagineerde antwoorden