Isolamento Notebook

O isolamento Notebook refere-se à visibilidade de variáveis e classes entre Notebook. Databricks oferece suporte a dois tipos de isolamento:

  • Isolamento de variável e classe

  • Isolamento da sessão do Spark

Observação

Como todos Notebook anexados aos mesmos clusters são executados nas mesmas VMs clusters , mesmo com o isolamento de sessão do Spark habilitado, não há isolamento garantido do usuário dentro de um clusters.

Isolamento de variável e classe

Variáveis e classes estão disponíveis apenas no Notebook atual. Por exemplo, dois Notebook conectados aos mesmos clusters podem definir variáveis e classes com o mesmo nome, mas esses objetos são distintos.

Para definir uma classe visível para todos Notebook conectados aos mesmos clusters, defina a classe em uma célula de pacote. Em seguida, você pode acessar a classe usando seu nome totalmente qualificado, que é o mesmo que acessar uma classe em uma biblioteca Scala ou Java anexada.

Isolamento da sessão do Spark

Cada Notebook anexado a um clusters tem uma variável predefinida chamada spark que representa um SparkSession. SparkSession é o ponto de entrada para usar as APIs do Spark, bem como definir configurações Runtime .

O isolamento da sessão do Spark é habilitado por default. Você também pode usar temporária global view para compartilhar temporária view no Notebook. Consulte CREATE VIEW. Para desativar o isolamento de sessão do Spark, defina spark.databricks.session.share como true na configuração do Spark.

Importante

A definição de spark.databricks.session.share true interrompe o monitoramento usado pelas células Notebook transmitidas e Job transmitido. Especificamente:

  • Os gráficos nas células transmitidas não são exibidos.

  • Os jobs não bloqueiam enquanto a transmissão estiver rodando (eles apenas terminam “com sucesso”, interrompendo a transmissão).

  • transmissão no Job não são monitoradas para rescisão. Em vez disso, você deve chamar awaitTermination() manualmente.

  • Chamar Criar uma nova visualização em DataFrames transmitidos não funciona.

As células que acionam comandos em outros idiomas (ou seja, células que usam %scala, %python, %r e %sql) e células que incluem outro Notebook (ou seja, células que usam %run) fazem parte do Notebook atual. Assim, essas células estão na mesma sessão que as outras células Notebook . Por outro lado, um fluxo de trabalhoNotebook executa um Notebook com um SparkSession isolado, o que significa que view temporária definida em tal Notebook não é visível em outro Notebook.