Partilhar via


Azure Databricks para programadores de R

Esta seção fornece um guia para desenvolver blocos de anotações 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 tente um tutorial listado abaixo. O Databricks recomenda aprender a usar blocos de anotações interativos do Azure Databricks.
  2. 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.

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

Tutoriais

Os tutoriais a seguir 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.

Referência

As subseções a seguir listam os principais recursos e dicas para ajudá-lo a começar a desenvolver no Azure Databricks com 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. SparkR é uma interface R para Apache Spark que fornece uma implementação de quadro de dados distribuído. O SparkR suporta operações como seleção, filtragem e agregação (semelhante a quadros de dados R), mas em grandes conjuntos de dados.

sparklyr

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

Comparando SparkR e Sparklyr

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

Trabalhar com DataFrames e tabelas com SparkR e sparklyr

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

Gerencie código com blocos de anotações e pastas Databricks Git

Os blocos de anotações do Azure Databricks suportam R. 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 importando um bloco de anotações. Depois de ter acesso a um cluster, você pode anexar um bloco de anotações ao cluster e executá-lo.

As pastas Git do Azure Databricks permitem que os usuários sincronizem blocos de anotações e outros arquivos com repositórios Git. As pastas Git do Azure 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 exibição de versões anteriores do bloco de anotações e a integração com o desenvolvimento do IDE. Comece clonando 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

O Azure Databricks Compute 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ç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 únicos, os cientistas de dados podem usar a computação de nó único para economia de custos.
  • Para obter dicas detalhadas, consulte Práticas recomendadas de configuração de computação.
  • Os administradores podem configurar políticas de cluster para simplificar e orientar a criação de clusters.

R de nó único e R distribuído

Os clusters do Azure Databricks consistem em um nó de driver Apache Spark e zero ou mais nós de trabalhador Spark (também conhecido como executor). O nó do driver mantém o estado do bloco de anotações anexado, mantém os comandos , interpreta o SparkContextbloco de anotações e a biblioteca e executa o mestre do Spark que coordena com os executores do Spark. Os nós de trabalho executam os executores do Spark, 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. Os clusters de nó único suportam 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 em 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. Os 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 SQL e DataFrame familiares, que permitem atribuir e executar várias tarefas e comandos do Spark em paralelo entre nós de trabalho. Para saber mais sobre o sparklyr e o SparkR, consulte Comparando o SparkR e o sparklyr.

Algumas funções do SparkR e do sparklyr que tiram vantagem particular da distribuição de 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 em pacotes R ou R que não estão disponíveis no Apache Spark nem em outros pacotes Spark.
  • SparkR::d apply: Aplica a função especificada a cada partição de um SparkDataFramearquivo .
  • SparkR::d applyCollect: Aplica a função especificada a cada partição de a SparkDataFrame e coleta os resultados de volta para R como um data.frame.
  • SparkR::gapply: agrupa a SparkDataFrame usando as colunas especificadas e aplica a função R especificada a cada grupo.
  • SparkR::gapplyCollect: Agrupa a 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 obter exemplos, consulte o bloco de anotações Distributed R: User Defined Functions no Spark.

Serviços de contêiner Databricks

O Databricks Container Services permite especificar uma imagem do Docker ao criar um cluster. O Databricks fornece a imagem base databricksruntime/rbase no Docker Hub como um exemplo para iniciar um cluster Databricks Container Services com suporte a R. Consulte também o Dockerfile usado para gerar essa imagem base.

Bibliotecas

Os clusters do Azure Databricks usam o Databricks Runtime, que fornece muitas bibliotecas populares prontas para uso, incluindo Apache Spark, Delta Lake e muito mais. Você também pode instalar pacotes R personalizados ou de terceiros adicionais em bibliotecas para usar com blocos de anotações e trabalhos.

Comece com as bibliotecas padrão nas notas de versão, versões e compatibilidade do Databricks Runtime. Use o Databricks Runtime for Machine Learning para cargas de trabalho de aprendizado de máquina. Para obter listas completas de bibliotecas pré-instaladas, consulte a seção "Bibliotecas R instaladas" para obter versões e compatibilidade das notas de versão do Databricks Runtime de destino no Databricks Runtime.

Você pode personalizar seu ambiente usando bibliotecas R com escopo de bloco de anotações, que permitem modificar seu bloco de anotações ou ambiente de trabalho com bibliotecas da CRAN ou de outros repositórios. Para fazer isso, você pode usar a função install.packages familiar de 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, poderá usar um bloco de anotações para executar install_version função a partir do devtools. O exemplo a seguir 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 estão disponíveis em um cluster. Eles têm escopo para o 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, a partir 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 mais detalhes, consulte Bibliotecas.

Para instalar um pacote personalizado em uma biblioteca:

  1. Crie seu pacote personalizado a partir da linha de comando ou usando RStudio.

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

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

    Por exemplo, a partir de um bloco de notas na sua área de trabalho:

    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, em seguida, carregue a biblioteca 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ó de um cluster, você deve usar O que são scripts init?.

Visualizações

Os blocos de anotações do Azure Databricks R dão suporte a vários tipos de visualizações usando a display função.

Tarefas

Você pode automatizar cargas de trabalho R conforme bloco de anotações agendado ou acionado Criar e executar Trabalhos do Azure Databricks no Azure Databricks.

  • Para obter detalhes sobre como criar um trabalho por meio da interface do usuário, consulte Criar um trabalho.
  • A API de trabalhos permite criar, editar e excluir trabalhos.
  • A CLI do Databricks fornece uma interface de linha de comando conveniente para chamar a API de Trabalhos.

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 Azure Databricks, consulte Databricks Runtime for Machine Learning.

Para algoritmos de ML, você pode usar bibliotecas pré-instaladas no Databricks Runtime for Machine Learning. 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 como pontos de extremidade REST. Para obter mais informações e exemplos, consulte o gerenciamento do ciclo de vida do ML usando o MLflow ou os documentos da API MLflow R.

Ferramentas de desenvolvimento R

Para além dos blocos de notas do Azure Databricks, também pode utilizar as seguintes ferramentas para programadores de R:

Personalização da sessão 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 blocos de anotações R originarã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.siteo . Observe que o Databricks adicionou 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 como esperado.

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

Recursos adicionais