Compartilhar via


Contextos de execução de notebook do Databricks

Quando você anexa um notebook a um cluster, o Azure Databricks cria um contexto de execução. Um contexto de execução contém o estado de um ambiente REPL para cada linguagem de programação com suporte: Python, R, Scala e SQL. Quando você executa uma célula em um notebook, o comando é enviado para o ambiente REPL de idioma apropriado e é executado.

Você também pode usar a API de execução de comandos para criar um contexto de execução e enviar um comando para ser executado no contexto de execução. Da mesma forma, o comando é expedido para o ambiente REPL de linguagem e é executado.

Um cluster tem um número máximo de contextos de execução (145). Depois que o número de contextos de execução atingir esse limite, você não poderá anexar um notebook ao cluster ou criar um novo contexto de execução.

Contextos de execução ociosos

Um contexto de execução é considerado ocioso quando a última execução concluída ocorreu após um limite ocioso definido. A última execução concluída é a última vez que o notebook concluiu a execução de comandos. O limite ocioso é a quantidade de tempo que deve passar entre a última execução concluída e qualquer tentativa de desconectar automaticamente o notebook.

Quando um cluster atinge o limite máximo de contexto, o Azure Databricks remove contextos de execução ociosos (começando com o menos usado recentemente) conforme necessário. Mesmo quando um contexto é removido, o notebook que usa o contexto ainda é anexado ao cluster e aparece na lista de notebooks do cluster. Os notebooks de streaming são considerados ativamente em execução e seu contexto nunca é despejado até que sua execução seja interrompida. Se um contexto ocioso for retirado, a interface do usuário exibirá uma mensagem indicando que o notebook que usa o contexto foi desalojado devido à ociosidade.

Contexto de notebook desalojado

Se você tentar anexar um notebook ao cluster que tenha o número máximo de contextos de execução e não houver contextos ociosos (ou se a redução automática estiver desabilitada), a interface do usuário exibirá uma mensagem indicando que o limite máximo atual de contextos de execução foi atingido e o notebook permanecerá no estado desanexado.

Notebook desanexado

Se você criar uma bifurcação de um processo, um contexto de execução ocioso ainda será considerado ocioso após a execução da solicitação que a bifurcação do processo retorna. A bifurcação de processos separados não é recomendada com o Spark.

Configurar a remoção automática de contexto

Por padrão, a autorremoção está habilitada. Para desabilitar a remoção automática de um cluster, defina a Propriedade do Sparkspark.databricks.chauffeur.enableIdleContextTracking false.

Determinar versão do Spark e do Databricks Runtime

Para determinar a versão do Spark do cluster ao qual seu bloco de anotações está anexado, execute:

spark.version

Para determinar a versão do Databricks Runtime do cluster ao qual seu bloco de anotações está anexado, execute:

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

Observação

Tanto essa marca sparkVersion quanto a propriedade spark_version exigida pelos pontos de extremidade na API de Clusters e na API de Trabalhos referem-se à Versão do Databricks Runtime, não à versão do Spark.