Azure Databricks para desenvolvedores Python
Esta seção fornece um guia para desenvolver blocos de anotações 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 seu próprio código de arquivos ou repositórios Git ou tente um tutorial listado abaixo. A Databricks recomenda aprender usando Notebooks Databricks interativos.
- Execute seu código em um cluster: crie seu próprio cluster ou verifique se você tem permissões para usar um cluster compartilhado. Anexe o bloco de notas ao cluster e execute o bloco de notas.
- Então você pode:
- Trabalhar com conjuntos de dados maiores usando o Apache Spark
- Adicionar visualizações
- Automatize a sua carga de trabalho como uma tarefa
- Use o aprendizado de máquina para analisar seus dados
- Desenvolver em IDEs
Tutoriais
Os tutoriais abaixo fornecem código de exemplo e blocos de anotações para aprender sobre fluxos de trabalho comuns. Consulte Importar um bloco de notas para obter instruções sobre como importar exemplos de blocos de notas para a sua área de trabalho.
Engenharia de dados
- Tutorial: Carregar e transformar dados usando o Apache Spark DataFrames fornece um passo a passo para ajudá-lo a aprender sobre o Apache Spark DataFrames para preparação e análise de dados.
- Tutorial: Delta Lake.
- Tutorial: Execute seu primeiro pipeline de DLT.
Ciência de dados e aprendizado de máquina
- Introdução ao Apache Spark DataFrames para preparação e análise de dados: Tutorial: Carregar e transformar dados usando o Apache Spark DataFrames
- Tutorial: Modelos de ML de ponta a ponta no Azure Databricks. Para obter exemplos adicionais, consulte Tutoriais: Introdução à IA e ao aprendizado de máquina.
- AutoML permite que você comece rapidamente a desenvolver modelos de aprendizado de máquina em seus próprios conjuntos de dados. Sua abordagem de caixa de vidro gera notebooks com o fluxo de trabalho completo de aprendizado de máquina, que você pode clonar, modificar e executar novamente.
- Gerencie o ciclo de vida do modelo no Unity Catalog
- Tutorial: Modelos de ML completos no Azure Databricks
Depurar em blocos de anotações Python
O bloco de anotações de exemplo ilustra como usar o depurador Python (pdb) em blocos de anotações 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 controlar o valor atual das variáveis Python na interface do usuário do notebook. Você pode usar o explorador de variáveis para observar os valores das variáveis Python à medida que percorre os pontos de interrupção.
Notebook de exemplo do depurador Python
Nota
breakpoint()
não é suportado no IPython e, portanto, não funciona em notebooks Databricks. Você pode usar import pdb; pdb.set_trace()
em vez de breakpoint()
.
APIs de Python
O código Python que é executado fora do Databricks geralmente pode ser executado dentro do Databricks e vice-versa. Se você tiver código existente, basta importá-lo para o Databricks para começar. Consulte Gerir código com blocos de anotações e pastas do Databricks Git abaixo para obter detalhes.
O Databricks pode executar cargas de trabalho Python distribuídas e de máquina única. Para computação de máquina única, você pode usar APIs e bibliotecas Python como de costume; Por exemplo, Pandas e Scikit-Learn vão "simplesmente funcionar". Para cargas de trabalho Python distribuídas, o Databricks oferece duas APIs populares prontas para uso: PySpark e Pandas API on Spark.
PySpark API
PySpark é a API oficial do Python para Apache Spark e combina o poder do Python e do Apache Spark. O PySpark é mais flexível do que a API Pandas no Spark e fornece suporte e recursos extensivos para funcionalidade de ciência de dados e engenharia, como Spark SQL, Structured Streaming, MLLib e GraphX.
Pandas API no Spark
Nota
O projeto de código aberto Koalas agora recomenda mudar para a API Pandas no Spark. A API Pandas no Spark está disponível em clusters que executam o Databricks Runtime 10.0 (EoS) e superior. Para clusters que executam o Databricks Runtime 9.1 LTS e inferior, use Koalas em vez disso.
pandas é um pacote Python comumente usado por cientistas de dados para análise e manipulação de dados. No entanto, o pandas não é escalável para big data. A API do Pandas no Spark preenche essa lacuna fornecendo APIs equivalentes a pandas que funcionam no Apache Spark. Esta API de código aberto é uma escolha ideal para cientistas de dados que estão familiarizados com pandas, mas não com o Apache Spark.
Gerencie código com blocos de anotações e pastas Databricks Git
Os notebooks do Databricks suportam Python. Esses notebooks fornecem funcionalidade semelhante à do Jupyter, mas com adições como visualizações integradas usando big data, integrações Apache Spark para depuração e monitoramento de desempenho e integrações MLflow para rastrear experimentos de aprendizado de máquina. Comece por importar um bloco de notas. Depois de ter acesso a um cluster, pode-se anexar um caderno ao cluster e executá-lo.
Gorjeta
Para redefinir o estado do seu notebook, reinicie o kernel do iPython. Para usuários do Jupyter, a opção "reiniciar kernel" no Jupyter corresponde a separar e reanexar um notebook no Databricks. Para reiniciar o kernel num caderno Python, clique no seletor de computação na barra de ferramentas do caderno e passe o rato sobre o cluster anexado ou a warehouse de SQL na lista para exibir um menu lateral. Selecione Desanexar & anexar novamente. Isso desanexa o notebook do cluster e o reatacha, o que reinicia o processo do Python.
As pastas Databricks Git permitem que os usuários sincronizem notebooks e outros arquivos com repositórios Git. As pastas Git do Databricks ajudam com o controle de versão e a colaboração de código e podem simplificar a importação de um repositório completo de código para o Azure Databricks, a visualização de versões anteriores do bloco de anotações e a integração com o desenvolvimento do IDE. Comece por clonar um repositório Git remoto. Em seguida, você pode abrir ou criar blocos de anotações com o clone do repositório, anexar o bloco de anotações a um cluster e executar o bloco de anotações.
Clusters e bibliotecas
O serviço de computação do Azure Databricks proporciona gestão de recursos computacionais para clusters de qualquer tamanho: desde clusters de nó único até clusters de grande escala. Você pode personalizar o hardware e as bibliotecas do cluster de acordo com suas necessidades. Os cientistas de dados geralmente começam a trabalhar criando um cluster ou usando um cluster compartilhado existente. Depois de ter acesso a um cluster, você pode anexar um bloco de anotações ao cluster ou executar um trabalho no cluster.
- Para pequenas cargas de trabalho que exigem apenas nós individuais, os cientistas de dados podem usar computação de nó único para redução de custos.
- Para obter dicas detalhadas, consulte Recomendações de configuração de computação
- Os administradores podem configurar políticas de clusters para simplificar e orientar a criação de clusters.
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 personalizadas ou de terceiros adicionais para usar com blocos de anotações e trabalhos.
- Comece com as bibliotecas padrão nas notas de versão e compatibilidade da Databricks Runtime. Use o Databricks Runtime para Aprendizagem Automática para cargas de trabalho de aprendizagem automática. Para obter listas completas de bibliotecas pré-instaladas, consulte Versões e compatibilidade das notas de versão do Databricks Runtime.
- Personalize o seu ambiente utilizando bibliotecas Python com escopo de notebook, que permitem modificar o seu notebook ou ambiente de tarefa com bibliotecas do PyPI ou de outros repositórios. O comando
%pip install my_library
magic instalamy_library
em todos os nós do cluster atualmente conectado, sem interferir com outras cargas de trabalho nos cálculos, mantendo o modo de acesso padrão. - Instale bibliotecas não-Python como bibliotecas de cluster conforme necessário.
- Para obter mais detalhes, consulte Bibliotecas.
Visualizações
Os blocos de anotações Python do Azure Databricks têm suporte interno para muitos tipos de visualizações. Você também pode usar visualizações herdadas.
Você também pode visualizar dados usando bibliotecas de terceiros; alguns são pré-instalados no Databricks Runtime, mas você também pode instalar bibliotecas personalizadas. As opções populares incluem:
Tarefas
Você pode automatizar cargas de trabalho Python como trabalhos agendados ou acionados no Databricks. Os trabalhos podem executar blocos de anotações, scripts Python e arquivos de roda Python.
- Crie e atualize trabalhos usando a interface do utilizador do Databricks ou a API REST do Databricks .
- O SDK do Python Databricks permite criar, editar e excluir trabalhos programaticamente.
- A CLI do Databricks fornece uma interface de linha de comando conveniente para automatizar trabalhos.
Gorjeta
Para agendar um script Python em vez de um bloco de anotações, use o spark_python_task
campo sob tasks
no corpo de uma solicitação de criação de trabalho.
Aprendizagem automática
O Databricks suporta uma ampla variedade de cargas de trabalho de aprendizado de máquina (ML), incluindo ML tradicional em dados tabulares, aprendizado profundo para visão computacional e processamento de linguagem natural, sistemas de recomendação, análise de gráficos e muito mais. Para obter informações gerais sobre aprendizado de máquina no Databricks, consulte IA e aprendizado de máquina no Databricks.
Para algoritmos de ML, você pode usar bibliotecas pré-instaladas no Databricks Runtime for 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 operações de aprendizado de máquina (MLOps), o Azure Databricks fornece um serviço gerenciado para a biblioteca de código aberto MLflow. Com o MLflow Tracking, você pode registrar o desenvolvimento de modelos e salvar modelos em formatos reutilizáveis. Você pode usar o MLflow Model Registry para gerenciar e automatizar a promoção de modelos para produção. Jobs e Model Serving permitem hospedar modelos como trabalhos em lote e streaming e como pontos de extremidade REST. Para obter mais informações e exemplos, consulte o MLflow for gen AI agent and ML model lifecycle ou o MLflow Python API docs.
Para começar a usar cargas de trabalho comuns de aprendizado de máquina, consulte as seguintes páginas:
- Formação de scikit-learn e monitorização com MLflow: Tutorial de 10 minutos: aprendizagem automática no Databricks com scikit-learn
- Treinar modelos de deep learning: Deep learning
- Ajuste de hiperparâmetros: Paralelizar o ajuste de hiperparâmetros do Hyperopt
- Análise de gráficos: Como usar GraphFrames no Azure Databricks
IDEs, ferramentas de desenvolvedor e SDKs
Além de desenvolver código Python em blocos de anotações do Azure Databricks, você pode desenvolver externamente usando ambientes de desenvolvimento integrados (IDEs), como PyCharm, Jupyter e Visual Studio Code. Para sincronizar o trabalho entre ambientes de desenvolvimento externos e Databricks, há várias opções:
- Código: Você pode sincronizar o código usando o Git. Consulte Integração do Git para pastas do Git no Databricks.
- Bibliotecas e Trabalhos: Você pode criar bibliotecas (como arquivos de roda Python) externamente e carregá-las no Databricks. Essas bibliotecas podem ser importadas dentro de notebooks Databricks ou podem ser usadas para criar empregos. Consulte Bibliotecas e Visão geral da orquestração no Databricks.
- Execução remota da máquina: Você pode executar código do IDE local para desenvolvimento e testes interativos. O IDE pode se comunicar com o Azure Databricks para executar o Apache Spark e grandes cálculos em clusters do Azure Databricks. Consulte Databricks Connect.
O Databricks fornece um conjunto de SDKs, incluindo um Python SDK, que suportam 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 espaço de trabalho, cargas de trabalho e trabalhos e muito mais. Consulte os SDKs do Databricks.
Para obter mais informações sobre IDEs, ferramentas de desenvolvedor e SDKs, consulte Ferramentas de desenvolvimento local.
Recursos adicionais
- A Databricks Academy oferece cursos individualizados e ministrados por instrutores sobre muitos tópicos.
- O Databricks Labs fornece ferramentas para o desenvolvimento Python em Databricks, como o plugin pytest e o plugin pylint.
- Os recursos que suportam a interoperabilidade entre o PySpark e os pandas incluem o seguinte:
- As ferramentas de conectividade de banco de dados Python e SQL incluem:
- O Databricks SQL Connector for Python permite que você use o código Python para executar comandos SQL nos recursos do Azure Databricks.
- pyodbc permite que você se conecte de seu código Python local através de ODBC para dados armazenados no lago Databricks.
- Perguntas frequentes e dicas para mover cargas de trabalho Python para Databricks podem ser encontradas na Base de Conhecimento Databricks