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.