Utilità di Databricks con Databricks Connect per Python

Nota

Questo articolo illustra Databricks Connect per Databricks Runtime 13.3 LTS e versioni successive.

Questo articolo descrive come usare Databricks Utilities con Databricks Connect per Python. Databricks Connect consente di connettere gli IDE, i server notebook e le applicazioni personalizzate più diffusi ai cluster Azure Databricks. Vedi Databricks Connect.

Prima di iniziare a usare Databricks Connect, è necessario configurare il client Databricks Connect.

Per la versione Scala di questo articolo, vedere Databricks Utilities with Databricks Connect for Scala.

Utilità di Databricks disponibili

Usare Databricks Connect per accedere alle utilità di Databricks come indicato di seguito:

  • Usare la WorkspaceClient variabile della dbutils classe per accedere alle utilità di Databricks. La classe WorkspaceClient appartiene all'SDK Databricks per Python ed è inclusa in Databricks Connect.
  • Usare dbutils.fs per accedere all'utilità Databricks fs.
  • Usare dbutils.secrets per accedere all'utilità dei segreti di Databricks Utilities .
  • Usare dbutils.widgets per creare e leggere widget locali, così che il codice scritto per l'utilità widgets di Databricks Utilities venga eseguito localmente. Questi widget esistono solo nella tua sessione locale e non possono recuperare i parametri del notebook remoto o delle attività del job. Leggere un widget che non hai creato localmente fa alzare un KeyError, oppure restituisce il valore predefinito se usi getArgument.
  • Usalo dbutils.jobs.taskValues per debugare localmente il codice scritto per l'utilità jobs di Databricks Utilities. I valori dei compiti non vengono scambiati con le esecuzioni di lavoro da remoto: set non fa nulla e get restituisce il valore del suo argomento debugValue, oppure genera un errore se non passi debugValue. Per impostare o ottenere valori delle attività per le attività a valle, esegui il tuo codice come attività del processo.

Non è disponibile alcuna funzionalità di Databricks Utilities oltre alle utility precedenti tramite dbutils.

Suggerimento

È anche possibile usare Databricks SDK incluso per Python per accedere a qualsiasi API REST di Databricks disponibile, non solo alle API di Utilità databricks precedenti. Vedere databricks-sdk in PyPI.

Inizializzare WorkspaceClient

Per inizializzare WorkspaceClient, è necessario fornire informazioni sufficienti per autenticare un SDK di Databricks con l'area di lavoro. Ad esempio, è possibile:

  • Codificare direttamente l'URL dello spazio di lavoro e il token di accesso nel codice, quindi inizializzare WorkspaceClient come descritto di seguito. Anche se questa opzione è supportata, Databricks non consiglia questa opzione, perché può esporre informazioni riservate, ad esempio token di accesso, se il codice è archiviato nel controllo della versione o altrimenti condiviso:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(host  = f"https://{retrieve_workspace_instance_name()}",
                        token = retrieve_token())
    
  • Creare o specificare un profilo di configurazione che contiene i campi host e token, quindi inizializzare il WorkspaceClient come indicato di seguito:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient(profile = "<profile-name>")
    
  • Impostare le variabili di ambiente DATABRICKS_HOST e DATABRICKS_TOKEN nello stesso modo in cui vengono impostate per Databricks Connect e quindi inizializzare WorkspaceClient come indicato di seguito:

    from databricks.sdk import WorkspaceClient
    
    w = WorkspaceClient()
    

Databricks SDK per Python non riconosce la variabile di ambiente SPARK_REMOTE per Databricks Connect.

Per altre opzioni di autenticazione Azure Databricks per Databricks SDK per Python, nonché come inizializzare AccountClient all'interno degli SDK di Databricks per accedere alle API REST di Databricks disponibili a livello di account anziché a livello di area di lavoro, vedere databricks-sdk in PyPI.

Esempio: Creare un file in un volume

L'esempio seguente illustra come usare Databricks SDK per Python per automatizzare le utilità di Databricks. Questo esempio crea un file denominato zzz_hello.txt nel percorso di un volume di Catalogo Unity all'interno dell'area di lavoro, legge i dati dal file e quindi elimina il file. In questo esempio si presuppone che le variabili di ambiente DATABRICKS_HOST e DATABRICKS_TOKEN siano già state impostate:

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

file_path = "/Volumes/main/default/my-volume/zzz_hello.txt"
file_data = "Hello, Databricks!"
fs = w.dbutils.fs

fs.put(
  file      = file_path,
  contents  = file_data,
  overwrite = True
)

print(fs.head(file_path))

fs.rm(file_path)

Vedere anche Interazione con dbutils nella documentazione dell'SDK di Databricks per Python.