Compartilhar via


Azure Databricks para desenvolvedores de R

Esta seção fornece um guia para o desenvolvimento de notebooks e trabalhos no Azure Databricks usando a linguagem R.

Um fluxo de trabalho básico para começar é:

  1. Importar código: importe seu próprio código de arquivos ou repositórios Git ou experimente um tutorial listado abaixo. O Databricks recomenda aprender a usar notebooks interativos do Azure Databricks.
  2. 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.

Além disso, você pode aprofundar-se em tópicos mais específicos:

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.

Referência

As subseções abaixo listam os principais recursos e dicas para ajudar você a começar a desenvolver no Azure Databricks com o R.

O Azure Databricks dá suporte a duas APIs que fornecem uma interface R para o Apache Spark: SparkR e sparklyr.

SparkR

Estes artigos fornecem uma introdução e referência para o SparkR. O SparkR é uma interface R para o Apache Spark que fornece uma implementação de quadro de dados distribuído. O SparkR dá suporte a operações como seleção, filtragem e agregação (semelhante a quadros de dados R), mas em conjuntos de dados grandes.

sparklyr

Este artigo fornece uma introdução ao sparklyr. sparklyr é uma interface R para Apache Spark que fornece funcionalidade semelhante ao dplyr, broom e DBI.

Comparação entre o SparkR e o sparklyr

Este artigo explica as principais semelhanças e diferenças entre o SparkR e o sparklyr.

Trabalhar com DataFrames e tabelas com o SparkR e o sparklyr

Este artigo descreve como usar p R, SparkR, sparklyr e dplyr para trabalhar com tabelas R data.frames, Spark DataFrames e Spark no Azure Databricks.

Gerenciar o código com notebooks e pastas Git do Databricks

Os notebooks do Azure Databricks suportam R. 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.

As pastas Git do Azure Databricks permitem que os usuários sincronizem notebooks e outros arquivos com repositórios Git. As pastas Git do Azure 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, a exibição de versões anteriores do notebook e a integração 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

A Computação do Azure Databricks fornece gerenciamento de computação para nós únicos e 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.

Nó único R e R distribuído

Os clusters do Azure Databricks consistem em um nó de driver do Apache Spark e zero ou mais nós de trabalho do Spark (também conhecidos como executor). O nó de driver mantém o estado do notebook anexado, mantém o SparkContext, interpreta os comandos de notebook e biblioteca e executa o mestre do Spark que coordena com executores do Spark. Os nós de trabalho executam os executores do Spark, sendo um executor do Spark por nó de trabalho.

Um cluster de nó único tem um nó de driver e nenhum nó de trabalho, com o Spark em execução no modo local para dar suporte ao acesso a tabelas gerenciadas pelo Azure Databricks. Clusters de nó único oferecem suporte a RStudio, notebooks e bibliotecas e são úteis para projetos R que não dependem do Spark para big data ou processamento paralelo. Consulte Computação de nó único ou de vários nós.

Para tamanhos de dados que o R tem dificuldade para processar (muitos gigabytes ou petabytes), você deve usar clusters distribuídos ou de vários nós. Os clusters distribuídos têm um nó de driver e um ou mais nós de trabalho. Clusters distribuídos suportam não apenas RStudio, notebooks e bibliotecas, mas também pacotes R, como SparkR e sparkly, que são projetados exclusivamente para usar clusters distribuídos por meio do SparkContext. Esses pacotes fornecem APIs conhecidas de SQL e DataFrame, as quais permitem atribuir e executar várias tarefas e comandos do Spark em paralelo entre nós de trabalho. Para saber mais sobre sparklyr e SparkR, confira Comparar SparkR e sparklyr.

Algumas funções do SparkR e sparklyr que aproveitam especialmente a distribuição do trabalho relacionado entre nós de trabalho incluem o seguinte:

  • sparklyr::spark_apply: executa código R arbitrário em escala dentro de um cluster. Isso é especialmente útil para usar a funcionalidade que está disponível apenas no R ou em pacotes R que não estão disponíveis no Apache Spark nem em outros pacotes do Spark.
  • SparkR::dapply: aplica a função especificada a cada partição de um SparkDataFrame.
  • SparkR::dapplyCollect: aplica a função especificada a cada partição de um SparkDataFrame e coleta os resultados de volta para R como um data.frame.
  • SparkR::gapply: agrupa um SparkDataFrame usando as colunas especificadas e aplica a função R especificada a cada grupo.
  • SparkR::gapplyCollect: agrupa um SparkDataFrame usando as colunas especificadas, aplica a função R especificada a cada grupo e coleta o resultado de volta para R como um data.frame.
  • SparkR::spark.lapply: executa a função especificada em uma lista de elementos, distribuindo os cálculos com o Spark.

Para ver exemplos, confira o notebook R Distribuído: funções de usuário definidas no Spark.

Serviços de Contêiner do Databricks

Os Serviços de Contêiner do Databricks permitem especificar uma imagem do Docker ao criar um cluster. O Databricks fornece a imagem base databricksruntime/rbase no Docker Hub como exemplo para iniciar um cluster dos Serviços de Contêiner do Databricks com suporte para R. Consulte também o Dockerfile usado para gerar essa imagem base.

Bibliotecas

Os clusters do Azure Databricks usam um Databricks Runtime, que fornece muitas bibliotecas populares prontas para uso, incluindo Apache Spark, Delta Lake e muito mais. Você também pode instalar pacotes adicionais personalizados ou de terceiros do R em bibliotecas 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, confira a seção "Bibliotecas R instaladas" para o Databricks Runtime de destino em Versões e compatibilidade das notas sobre a versão do Databricks Runtime.

Você pode personalizar seu ambiente usando Bibliotecas do R com escopo do Notebook, que permitem modificar o ambiente do notebook ou do trabalho com bibliotecas do CRAN ou de outros repositórios. Para fazer isso, use a função familiar install.packages do utils. O exemplo a seguir instala o pacote Arrow R do repositório CRAN padrão:

install.packages("arrow")

Se você precisar de uma versão mais antiga do que a incluída no Databricks Runtime, use um notebook para executar a função install_version do devtools. O seguinte exemplo instala o dplyr versão 0.7.4 do CRAN:

require(devtools)

install_version(
  package = "dplyr",
  version = "0.7.4",
  repos   = "http://cran.r-project.org"
)

Os pacotes instalados dessa forma ficam disponíveis em um cluster. Eles têm o escopo do usuário que os instala. Isso permite que você instale várias versões do mesmo pacote na mesma computação sem criar conflitos de pacote.

Você pode instalar outras bibliotecas como Bibliotecas de cluster conforme necessário, por exemplo, do CRAN. Para fazer isso, na interface do usuário do cluster, clique em Bibliotecas > Instalar nova > CRAN e especifique o nome da biblioteca. Essa abordagem é especialmente importante para quando você deseja chamar funções definidas pelo usuário com SparkR ou sparklyr.

Para obter detalhes, confira Bibliotecas.

Para instalar um pacote personalizado em uma biblioteca:

  1. Crie o pacote personalizado na linha de comando ou usando o RStudio.

  2. Copie o arquivo do pacote personalizado da sua máquina de desenvolvimento para o seu espaço de trabalho do Azure Databricks. Para opções, veja Bibliotecas.

  3. Instale o pacote personalizado em uma biblioteca executando install.packages.

    Por exemplo, em um notebook em seu workspace:

    install.packages(
      pkgs  = "/path/to/tar/file/<custom-package>.tar.gz",
      type  = "source",
      repos = NULL
    )
    

    Ou:

    %sh
    R CMD INSTALL /path/to/tar/file/<custom-package>.tar.gz
    

Depois de instalar um pacote personalizado em uma biblioteca, adicione a biblioteca ao caminho de pesquisa e carregue-a com um único comando.

Por exemplo:

# Add the library to the search path one time.
.libPaths(c("/path/to/tar/file/", .libPaths()))

# Load the library. You do not need to add the library to the search path again.
library(<custom-package>)

Para instalar um pacote personalizado como uma biblioteca em cada nó em um cluster, você deve usar O que são scripts de init?.

Visualizações

Os notebooks de R do Azure Databricks dão suporte a vários tipos de visualizações pelo uso da função display.

Trabalhos

Você pode automatizar cargas de trabalho do R como Criar, executar e gerenciar trabalhos do Azure Databricks do notebook agendado ou disparado no Azure Databricks.

  • Para obter detalhes sobre como criar um trabalho por meio da interface do usuário, confira Criar um trabalho.
  • A API de Trabalhos permite que você crie, edite e exclua trabalhos.
  • A CLI do Databricks fornece uma interface de linha de comando conveniente para chamar a API de Trabalhos.

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 o aprendizado de máquina no Azure Databricks, consulte Databricks Runtime para Machine Learning.

Para algoritmos de ML, use as bibliotecas pré-instaladas no Databricks Runtime para Machine Learning. 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 MLflow Model Registry para gerenciar e automatizar a promoção de modelos para produção. Trabalhos e Model Serving permite hospedar modelos como lotes e trabalhos de streaming como ponto 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 R.

Ferramentas de desenvolvedor R

Além dos notebooks do Azure Databricks, você também pode usar as seguintes ferramentas para desenvolvedores do R:

Personalização da sessão do R

No Databricks Runtime 12.2 LTS e superior, as sessões R podem ser personalizadas usando arquivos de perfil (.Rprofile) em todo o site. Os notebooks R fornecerão o arquivo como código R durante a inicialização. Para modificar o arquivo, localize o valor de R_HOME e modifique $R_HOME/etc/Rprofile.site. Observe que o Databricks adicionou a configuração no arquivo para garantir a funcionalidade adequada para o RStudio hospedado no Azure Databricks. Remover qualquer um deles pode fazer com que o RStudio não funcione conforme o esperado.

No Databricks Runtime 11.3 LTS e abaixo, esse comportamento pode ser habilitado definindo a variável de ambiente DATABRICKS_ENABLE_RPROFILE=true.

Recursos adicionais