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
Databricks gerenciam o isolamento do usuário usando modos de acesso configurados em clusters.
Nenhum isolamento compartilhado: vários usuários podem usar os mesmos clusters. Os usuários compartilham credenciais definidas no nível clusters . Nenhum controle de acesso a dados é aplicado.
Único usuário: Somente o usuário nomeado pode usar os clusters. Execução de todos os comandos com os privilégios desse usuário. As ACLs de tabela no Hive metastore não são aplicadas. Este modo de acesso oferece suporte ao Unity Catalog.
Compartilhado: vários usuários podem usar os mesmos clusters. Os usuários são totalmente isolados uns dos outros e cada usuário executa comandos com seus próprios privilégios. As ACLs de tabela no Hive metastore são impostas. Este modo de acesso oferece suporte ao Unity Catalog.
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.