Contesti di esecuzione del notebook di Databricks

Quando si collega un notebook a un cluster, Azure Databricks crea un contesto di esecuzione. Un contesto di esecuzione contiene lo stato per un ambiente REPL per ogni linguaggio di programmazione supportato: Python, R, Scala e SQL. Quando si esegue una cella in un notebook, il comando viene inviato all'ambiente REPL del linguaggio appropriato ed eseguito.

È anche possibile usare l'API di esecuzione dei comandi per creare un contesto di esecuzione e inviare un comando da eseguire nel contesto di esecuzione. Analogamente, il comando viene inviato all'ambiente REPL del linguaggio ed eseguito.

Un cluster ha un numero massimo di contesti di esecuzione (145). Quando il numero di contesti di esecuzione ha raggiunto questa soglia, non è possibile collegare un notebook al cluster o creare un nuovo contesto di esecuzione.

Contesti di esecuzione inattive

Un contesto di esecuzione viene considerato inattiva quando si è verificata l'ultima esecuzione completata oltre una soglia di inattività impostata. L'ultima esecuzione completata è l'ultima volta che il notebook ha completato l'esecuzione dei comandi. La soglia di inattività è la quantità di tempo che deve passare tra l'ultima esecuzione completata e qualsiasi tentativo di scollegare automaticamente il notebook.

Quando un cluster ha raggiunto il limite massimo di contesto, Azure Databricks rimuove (rimuove) i contesti di esecuzione inattivi (a partire dal meno recente usato) in base alle esigenze. Anche quando viene rimosso un contesto, il notebook che usa il contesto è ancora collegato al cluster e viene visualizzato nell'elenco dei notebook del cluster. I notebook di streaming vengono considerati in esecuzione attivamente e il relativo contesto non viene mai rimosso fino a quando l'esecuzione non viene arrestata. Se viene rimosso un contesto inattivo, l'interfaccia utente visualizza un messaggio che indica che il notebook che usa il contesto è stato scollegato a causa dell'inattività.

Contesto del notebook rimosso

Se si tenta di collegare un notebook al cluster con il numero massimo di contesti di esecuzione e non sono presenti contesti inattivi (o se la rimozione automatica è disabilitata), l'interfaccia utente visualizza un messaggio che indica che è stata raggiunta la soglia dei contesti di esecuzione massima correnti e il notebook rimarrà nello stato scollegato.

Blocco appunti scollegato

Se si crea un fork di un processo, un contesto di esecuzione inattiva viene comunque considerato inattiva dopo l'esecuzione della richiesta restituita dal fork del processo. La fork di processi separati non è consigliata con Spark.

Configurare la rimozione automatica del contesto

La rimozione automatica è abilitata per impostazione predefinita. Per disabilitare la rimozione automatica per un cluster, impostare la proprietàspark.databricks.chauffeur.enableIdleContextTracking false Spark.

Determinare la versione di Spark e Databricks Runtime

Per determinare la versione Spark del cluster a cui è collegato il notebook, eseguire:

spark.version

Per determinare la versione di Databricks Runtime del cluster a cui è collegato il notebook, eseguire:

spark.conf.get("spark.databricks.clusterUsageTags.sparkVersion")

Nota

Sia questo sparkVersion tag che la spark_version proprietà richiesta dagli endpoint nell'API Clusters e nell'API Processi fanno riferimento alla versione di Databricks Runtime, non alla versione di Spark.