Azure Databricks para desenvolvedores Python
Esta seção fornece um guia para o desenvolvimento de notebooks e trabalhos no Azure Databricks usando a linguagem Python, incluindo tutoriais para fluxos de trabalho e tarefas comuns e links para APIs, bibliotecas e ferramentas.
Para começar:
- Importar código: importe código próprio de arquivos ou repositórios Git ou tente seguir um tutorial listado abaixo. O Databricks recomenda aprender a usar notebooks interativos do Databricks.
- Execute seu código em um cluster: crie um cluster próprio ou verifique se você tem permissões para usar um cluster compartilhado. Anexe seu notebook ao cluster e execute o notebook.
- Então você pode:
- Trabalhar com conjuntos de dados maiores usando o Apache Spark
- Adicionar Visualizações
- Automatizar sua carga de trabalho como um trabalho
- Usar o aprendizado de máquina para analisar seus dados
- Desenvolver em IDEs
Tutoriais
Os tutoriais abaixo fornecem código de exemplo e notebooks para você saber mais sobre fluxos de trabalho comuns. Confira Importar um notebook para obter instruções sobre como importar exemplos de notebook para seu workspace.
Engenharia de dados
- Tutorial: carregar e transformar dados no DataFrames do Apache Spark fornece um passo a passo para ajudá-lo a aprender sobre o DataFrames do Apache Spark para preparar e analisar os dados.
- Tutorial: Delta Lake.
- Tutorial: como executar seu primeiro pipeline do Delta Live Tables.
Ciência de dados e machine learning
- Introdução ao DataFrames do Apache Spark para preparar e analisar dados: Tutorial: carregar e transformar dados usando o DataFrames do Apache Spark
- Tutorial: modelos de ML de ponta a ponta no Azure Databricks. Para obter exemplos adicionais, confira Tutoriais: Introdução a IA e a aprendizado de máquina e o Início Rápido do Python do guia do MLflow.
- O AutoML permite que você comece rapidamente a desenvolver modelos de machine learning em seus próprios conjuntos de dados. A abordagem de transparência do código usada por ele gera notebooks com o fluxo de trabalho completo de machine learning, que você pode clonar, modificar e executar novamente.
- Gerenciar o ciclo de vida do modelo no Catálogo do Unity
- Tutorial: modelos de ML de ponta a ponta no Azure Databricks
Depurar em notebooks do Python
O notebook de exemplo ilustra como usar o depurador do Python (pdb) em notebooks do Databricks. Para usar o depurador Python, você deve estar executando o Databricks Runtime 11.3 LTS ou superior.
Com o Databricks Runtime 12.2 LTS e superior, você pode usar o explorador de variáveis para rastrear o valor atual das variáveis Python na interface do notebook. Você pode usar o gerenciador de variáveis para observar os valores das variáveis do Python à medida que percorre os pontos de interrupção.
Notebook de exemplo do depurador de Python
Observação
breakpoint()
não tem suporte no IPython e, portanto, não funciona em notebooks do Databricks. Você pode usar import pdb; pdb.set_trace()
em vez de breakpoint()
.
APIs do Python
O código Python que é executado fora do Databricks geralmente pode ser executado no Databricks e vice-versa. Se você tiver o código existente, basta importá-lo para o Databricks para começar. Consulte Gerenciar código com notebooks e pastas Git do Databricks abaixo para obter detalhes.
O Databricks pode executar cargas de trabalho do Python distribuídas e de computador único. Para computação de computador único, você pode usar APIs e bibliotecas do Python como de costume; por exemplo, pandas e scikit-learn "simplesmente funcionarão". Para cargas de trabalho distribuídas do Python, o Databricks oferece duas APIs populares: o PySpark e a API do Pandas no Spark.
API do PySpark
PySpark é a API oficial do Python para Apache Spark e combina o poder do Python e do Apache Spark. O PySpark tem mais flexibilidade do que a API do Pandas no Spark e fornece amplo suporte e recursos para funcionalidades de ciência e engenharia de dados, como Spark SQL, Streaming Estruturado, MLLib e GraphX.
API do Pandas no Spark
Observação
O projeto de software livre do Koalas agora recomenda mudar para a do API do pandas no Spark. A API do Pandas no Spark está disponível nos clusters que executam o Databricks Runtime 10.0 (EoS) e posterior. Para clusters que executam o Databricks Runtime 9.1 LTS e inferiores, use o Koalas.
O pandas é um pacote Python comumente usado por cientistas de dados para análise e manipulação de dados. No entanto, o Pandas não escala horizontalmente para Big Data. A API do Pandas no Spark preenche esse espaço fornecendo APIs equivalentes ao pandas que funcionam no Apache Spark. Essa API de código aberto é uma opção ideal para cientistas de dados que estão familiarizados com o pandas, mas não com o Apache Spark.
Gerenciar o código com notebooks e pastas Git do Databricks
Os notebooks do Databricks dão suporte ao Python. Esses notebooks fornecem funcionalidade semelhante à do Jupyter, mas com adições como visualizações internas usando Big Data, integrações do Apache Spark para depuração e monitoramento de desempenho e integrações do MLflow para acompanhar experimentos de machine learning. Comece a trabalhar importando um notebook. Depois de ter acesso a um cluster, você pode anexar um notebook ao cluster e executar o notebook.
Dica
Para redefinir completamente o estado do notebook, pode ser útil reiniciar o kernel iPython. Para usuários do Jupyter, a opção "reiniciar kernel" no Jupyter corresponde à desanexação e à posterior reanexação de um notebook no Databricks. Para reiniciar o kernel em um notebook Python, clique no seletor de computação na barra de ferramentas do notebook e passe o mouse sobre o cluster anexado ou o SQL warehouse na lista para exibir um menu lateral. Selecione Desanexar e anexar novamente. Isso desanexa o notebook do cluster e o reanexa, o que reinicia o processo do Python.
As Pastas Git do Databricks permitem que os usuários sincronizem notebooks e outros arquivos com os repositórios Git. As pastas Git do Databricks ajudam no controle de versão e colaboração de código e podem simplificar a importação de um repositório completo de código para o Azure Databricks, exibindo versões anteriores do notebook e integrando-se ao desenvolvimento do IDE. Comece a trabalhar clonando um repositório Git remoto. Em seguida, você pode abrir ou criar notebooks com o clone do repositório, anexar o notebook a um cluster e executar o notebook.
Clusters e bibliotecas
A Computação do Azure Databricks fornece gerenciamento de computação para clusters de qualquer tamanho: desde clusters de nó único até clusters grandes. Você pode personalizar o hardware e as bibliotecas do cluster de acordo com suas necessidades. Os cientistas de dados geralmente começarão a trabalhar criando um cluster ou usando um cluster compartilhado existente. Depois de ter acesso a um cluster, você pode anexar um notebook ao cluster ou executar um trabalho no cluster.
- Para cargas de trabalho pequenas que requerem apenas um único nó, os cientistas de dados podem usar a computação de nó único para reduzir os custos.
- Para obter dicas detalhadas, consulte Recomendações de configuração de computação
- Os administradores podem configurar políticas de cluster para simplificar e orientar a criação do cluster.
Os clusters do Azure Databricks usam um Databricks Runtime, que fornece muitas bibliotecas populares prontas para uso, incluindo Apache Spark, Delta Lake, pandas e muito mais. Você também pode instalar bibliotecas Python adicionais personalizadas ou de terceiros para usar com notebooks e trabalhos.
- Comece com as bibliotecas padrão nas versões de notas sobre a versão do Databricks Runtime e compatibilidade. Use o Databricks Runtime para Machine Learning para cargas de trabalho de aprendizado de máquina. Para obter listas completas de bibliotecas pré-instaladas, veja Notas de versão do Databricks Runtime, versões e compatibilidade.
- Personalize seu ambiente usando bibliotecas Python no escopo do Notebook, que permitem modificar seu notebook ou ambiente de trabalho com bibliotecas do PyPI ou de outros repositórios. O comando magic
%pip install my_library
instalamy_library
em todos os nós no cluster atualmente anexado, mas não interfere em outras cargas de trabalho em clusters compartilhados. - Instale bibliotecas não Python como bibliotecas de cluster conforme necessário.
- Para obter detalhes, confira Bibliotecas.
Visualizações
Os notebooks Python do Azure Databricks têm suporte interno para muitos tipos de visualizações. Você também pode usar as visualizações herdadas.
Você também pode visualizar dados usando bibliotecas de terceiros; algumas são pré-instaladas no Databricks Runtime, mas você também pode instalar bibliotecas personalizadas. As opções populares incluem:
Trabalhos
Você pode automatizar cargas de trabalho do Python como Trabalhos agendados ou disparados no Databricks. Os trabalhos podem executar notebooks, scripts Python e arquivos do pacote wheel do Python.
- Crie e atualize trabalhos usando a interface do usuário do Databricks ou a API REST do Databricks.
- O SDK do Databricks Python permite que você crie, edite e exclua trabalhos programaticamente.
- A CLI do Databricks fornece uma interface de linha de comando conveniente para automatizar trabalhos.
Dica
Para agendar um script Python em vez de um notebook, use o campo spark_python_task
em tasks
no corpo de uma solicitação de criação de trabalho.
Aprendizado de máquina
O Databricks dá suporte a uma ampla variedade de cargas de trabalho de ML (machine learning), incluindo ML tradicional em dados tabulares, aprendizado profundo para pesquisa visual computacional e processamento de linguagem natural, sistemas de recomendação, análise de grafo e muito mais. Para obter informações gerais sobre aprendizado de máquina no Databricks, confira IA e aprendizado de máquina no Databricks.
Para algoritmos de ML, você pode usar bibliotecas pré-instaladas no Databricks Runtime para Machine Learning, que inclui ferramentas populares do Python, como scikit-learn, TensorFlow, Keras, PyTorch, Apache Spark MLlib e XGBoost. Você também pode instalar bibliotecas personalizadas.
Para MLOps (operações de aprendizado de máquina), o Azure Databricks fornece um serviço gerenciado para o MLFlow da biblioteca código aberto. Com Acompanhamento do MLflow, você pode registrar o desenvolvimento de modelos e salvá-los em formatos reutilizáveis. Você pode usar o Registro de Modelos do MLflow para gerenciar e automatizar a promoção de modelos para produção. Trabalhos e Serviço de Modelo permitem hospedar modelos como lotes e trabalhos de streaming como pontos de extremidade REST. Para obter mais informações e exemplos, consulte o gerenciamento do ciclo de vida de ML usando o do MLflow ou os documentos da API do MLflow Python.
Para começar a usar cargas de trabalho comuns de aprendizado de máquina, consulte as seguintes páginas:
- Treinamento de scikit-learn e acompanhamento com o MLflow: tutorial de 10 minutos: aprendizado de máquina no Databricks com scikit-learn
- Treinamento de modelos de aprendizado profundo: Aprendizado profundo
- Ajuste de hiperparâmetro: Paralelizar o ajuste de hiperparâmetro do Hyperopt
- Análise do gráfico: como usar GraphFrames no Azure Databricks
IDEs, ferramentas para desenvolvedores e SDKs
Além de desenvolver código Python em notebooks do Azure Databricks, você pode desenvolver externamente usando IDEs (ambientes de desenvolvimento integrados), como PyCharm, Jupyter e Visual Studio Code. Para sincronizar o trabalho entre ambientes de desenvolvimento externos e o Databricks, há várias opções:
- Código: você pode sincronizar o código usando o Git. Consulte integração do Git com as pastas Git do Databricks.
- Bibliotecas e Trabalhos: você pode criar bibliotecas (como arquivos do pacote wheel do Python) externamente e carregá-las no Databricks. Essas bibliotecas podem ser importadas em notebooks do Databricks ou podem ser usadas para criar trabalhos. Consulte Bibliotecas e Agendar e orquestrar fluxos de trabalho.
- Execução de computador remoto: você pode executar o código do IDE local para desenvolvimento e teste interativos. O IDE pode se comunicar com o Azure Databricks para executar grandes computações em clusters do Azure Databricks. Consulte Databricks Connect.
O Databricks fornece um conjunto de SDKs, incluindo um SDK do Python, que dá suporte à automação e à integração com ferramentas externas. Você pode usar os SDKs do Databricks para gerenciar recursos como clusters e bibliotecas, código e outros objetos de workspace, cargas de trabalho, trabalhos e muito mais. Confira os SDKs do Databricks.
Para obter mais informações sobre IDEs, ferramentas de desenvolvedor e SDKs, consulte Ferramentas de desenvolvedor.
Recursos adicionais
A Databricks Academy oferece cursos individuais e orientados por instrutores sobre muitos tópicos.
O Databricks Labs fornece ferramentas para desenvolvimento do Python no Databricks, como o plug-in pytest e o plug-in pylint.
Os recursos que suportam a interoperabilidade entre o PySpark e o pandas incluem o seguinte:
As ferramentas de conectividade de banco de dados Python e SQL incluem:
- O Conector do Databricks SQL para Python permite que você use o código Python para executar comandos SQL em recursos do Azure Databricks.
- O pyodbc permite que você se conecte do código Python local por meio do ODBC aos dados armazenados no Databricks lakehouse.
Perguntas frequentes e dicas para mover cargas de trabalho do Python para o Databricks podem ser encontradas na Base de Dados de Conhecimento do Databricks