Desenvolver código no Databricks Notebook
Esta página descreve como desenvolver código no Databricks Notebook, incluindo autocompletar, formatação automática para Python e SQL, combinação de Python e SQL em um Notebook e acompanhamento do histórico de versões do Notebook.
Para obter mais detalhes sobre a funcionalidade avançada disponível no editor, como autocompletar, seleção de variáveis, suporte a vários cursores e diffs lado a lado, consulte Navegar no Databricks Notebook e no editor de arquivos.
Quando o senhor usa o Notebook ou o editor de arquivos, o site Databricks Assistant está disponível para ajudá-lo a gerar, explicar e depurar códigos. Consulte Use Databricks Assistant para obter mais informações.
Databricks O Notebook também inclui um depurador interativo integrado para o Python Notebook. Consulte Caderno de depuração.
Modularize seu código
Com o Databricks Runtime 11.3 LTS e o acima, o senhor pode criar e gerenciar arquivos de código-fonte no Databricks workspace e, em seguida, importar esses arquivos para o Notebook, conforme necessário.
Para obter mais informações sobre como trabalhar com arquivos de código-fonte, consulte Share code between Databricks Notebook e Work with Python and R modules.
Formatar células de código
O Databricks fornece ferramentas que permitem formatar código Python e SQL em células de bloco de anotações de forma rápida e fácil. Essas ferramentas reduzem o esforço necessário para manter o formato do seu código e auxiliam na aplicação das mesmas normas de codificação em seus notebooks.
Python black formatter biblioteca
Visualização
Esse recurso está em Public Preview.
Databricks suporta a formatação do código Python usando preto no Notebook. O Notebook deve estar conectado a um cluster com black
e tokenize-rt
Python pacote instalado.
Em Databricks Runtime 11.3 LTS e acima, Databricks pré-instala black
e tokenize-rt
. O senhor pode usar o formatador diretamente sem precisar instalar essas bibliotecas.
Em Databricks Runtime 10.4 LTS e abaixo, o senhor deve instalar black==22.3.0
e tokenize-rt==4.2.1
de PyPI em seu Notebook ou clustering para usar o formatador Python. O senhor pode executar o seguinte comando em seu Notebook:
%pip install black==22.3.0 tokenize-rt==4.2.1
ou instalar a biblioteca em seu cluster.
Para obter mais detalhes sobre a instalação do biblioteca, consulte Python environment management.
Para arquivos e Notebook em pastas Databricks Git , o senhor pode configurar o formatador Python com base no arquivo pyproject.toml
. Para usar esse recurso, crie um arquivo pyproject.toml
no diretório raiz da pasta Git e configure-o de acordo com o formato de configuração do Black. Edite o [tool.black] seção no arquivo. A configuração é aplicada quando o senhor formata qualquer arquivo e Notebook na pasta Git.
Como formatar células Python e SQL
O senhor deve ter permissãoCAN EDIT no Notebook para formatar o código.
A Databricks usa a biblioteca Gethue/sql-formatter para formatar SQL e o formatador de código preto para Python.
Você pode ativar o formatador das seguintes maneiras:
-
Formatar uma única célula
-
Atalho de teclado: pressione Cmd+Shift+F .
-
Menu de contexto do comando:
- Formate a célula SQL: Selecione Format SQL no menu de contexto de comando dropdown de uma célula SQL. Esse item de menu é visível apenas nas células do SQL Notebook ou naquelas com magia de idioma
%sql
. - Formate a célula Python: Selecione Format Python no menu de contexto de comando dropdown de uma célula Python. Esse item de menu é visível apenas nas células do Python Notebook ou naquelas com magia de idioma
%python
.
- Formate a célula SQL: Selecione Format SQL no menu de contexto de comando dropdown de uma célula SQL. Esse item de menu é visível apenas nas células do SQL Notebook ou naquelas com magia de idioma
-
Menu Editar do Notebook: selecione uma célula Python ou SQL e selecione Editar > Formatar célula(s) .
-
-
Formatar múltiplas células
Selecione várias células e, em seguida, selecione Editar > Formatar célula (s) . Se o senhor selecionar células de mais de um idioma, somente as células SQL e Python serão formatadas. Isso inclui aqueles que usam
%sql
e%python
. -
Formate todas as células Python e SQL no notebook
Selecione Editar > Formatar notebook . Se o seu notebook tiver mais de uma linguagem, somente as células SQL e Python serão formatadas. Isto inclui aqueles que utilizam
%sql
e%python
.
Limitações da formatação do código
- A Black aplica os padrões PEP 8 para a indentação de 4 espaços A indentação não é configurável.
- Não há suporte para a formatação de strings Python incorporadas em um UDF SQL. Da mesma forma, a formatação de strings do SQL dentro de uma UDF Python não tem suporte.
Linguagens de código no Notebook
Defina o idioma default
O idioma padrão do notebook aparece próximo do nome do notebook.
Para alterar o idioma padrão, clique no botão "Idioma" e selecione o novo idioma no dropdown. Para garantir que os comandos existentes continuem funcionando, os comandos do idioma padrão anterior são automaticamente prefixados com um comando mágico de idioma.
Misture idiomas
Por padrão, as células utilizam o idioma padrão do notebook. Você pode substituir o idioma padrão em uma célula clicando no botão "Idioma" e selecionando um idioma no dropdown.
De forma alternativa, você pode utilizar o comando mágico de idioma %<language>
no início de uma célula. Os seguintes comandos mágicos estão disponíveis: %python
, %r
, %scala
e %sql
.
Quando o senhor invoca um comando mágico de linguagem, o comando é enviado para o REPL no contexto de execução do Notebook. As variáveis definidas em um idioma (e, portanto, no REPL desse idioma) não estão disponíveis no REPL de outro idioma. Os REPLs podem compartilhar o estado somente por meio de recursos externos, como arquivos em DBFS ou objetos no armazenamento de objetos.
Os notebooks também fornecem suporte para alguns comandos mágicos auxiliares:
%sh
: Permite que o senhor execute o código shell em seu Notebook. Para que a célula falhe se o comando do shell tiver um status de saída diferente de zero, adicione a opção-e
. Esse comando executa apenas o motorista do Apache Spark, e não o trabalhador. Para executar um shell comando em todos os nós, use um init script.%fs
: Permite que o senhor use o comando do sistema de arquivosdbutils
. Por exemplo, para executar o comandodbutils.fs.ls
para listar arquivos, o senhor pode especificar%fs ls
em vez disso. Para obter mais informações, consulte Trabalhar com arquivos em Databricks.%md
: Permite incluir vários tipos de documentação, incluindo texto, imagens e fórmulas e equações matemáticas. Veja a próxima seção.
SQL Destaque de sintaxe e autocompletar em comando Python
O realce de sintaxe e o preenchimento automático de SQL estão disponíveis quando o senhor usa SQL dentro de um comando Python, como em um comando spark.sql
.
Explorar os resultados da célula SQL
Em um Databricks Notebook, os resultados de uma célula de linguagem SQL são automaticamente disponibilizados como um DataFrame implícito atribuído à variável _sqldf
. Em seguida, o senhor pode usar essa variável em todas as células Python e SQL que executar posteriormente, independentemente de sua posição no Notebook.
Esse recurso tem as seguintes limitações:
- A variável
_sqldf
não está disponível no Notebook que usa um SQL warehouse para compute. - O uso de
_sqldf
nas células Python subsequentes é suportado em Databricks Runtime 13.3 e acima. - O uso de
_sqldf
nas células subsequentes de SQL é compatível apenas com Databricks Runtime 14.3 e acima. - Se a consulta usar as palavras-chave
CACHE TABLE
ouUNCACHE TABLE
, a variável_sqldf
não estará disponível.
A captura de tela abaixo mostra como o _sqldf
pode ser usado em células Python e SQL subsequentes:
A variável _sqldf
é reatribuída sempre que uma célula SQL é executada. Para evitar a perda de referência a um resultado específico do DataFrame, atribua-o a um novo nome de variável antes de executar a próxima célula do SQL:
- Python
- SQL
new_dataframe_name = _sqldf
ALTER VIEW _sqldf RENAME TO new_dataframe_name
Executar células SQL em paralelo
Enquanto um comando estiver em execução e o notebook estiver conectado a um cluster interativo, você pode executar uma célula SQL simultaneamente com o comando atual. A célula SQL é executada em uma nova sessão paralela.
Para executar uma célula em paralelo:
-
Clique em Run now (Executar agora ). A célula é executada imediatamente.
Como a célula é executada em uma nova sessão, a visualização temporária, os UDFs e o Python DataFrameimplícito (_sqldf
) não são compatíveis com as células executadas em paralelo. Além disso, o catálogo default e os nomes dos bancos de dados são usados durante a execução paralela. Se seu código se referir a uma tabela em um catálogo ou banco de dados diferente, você deverá especificar o nome da tabela usando o namespace de três níveis (catalog
).schema
.table
).
Execute SQL células em um SQL warehouse
O senhor pode executar SQL comando em um Databricks Notebook em um SQL warehouse, um tipo de compute que é otimizado para SQL analítica. Consulte Usar um notebook com um SQL warehouse.