Databricks para desenvolvedores R

Esta seção fornece um guia para desenvolver Notebook e Job em 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 do Git ou experimente o site tutorial listado abaixo. A Databricks recomenda que o senhor aprenda a usar o Databricks Notebook interativo.

  2. execução do 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 aos clusters, e execute o Notebook.

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

Tutoriais

O tutorial a seguir fornece código de exemplo e Notebook para aprender sobre fluxo de trabalho comum. Consulte Importar um Notebook para obter instruções sobre como importar exemplos Notebook para sua workspace.

Referência

As subseções a seguir listam key recursos e dicas para ajudá-lo a começar a desenvolver no Databricks com R.

Databricks oferece suporte a duas APIs que fornecem uma interface R para Apache Spark: SparkR e sparklyr.

SparkR

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

brilhante

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

Comparando SparkR e sparklyr

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

Trabalhe com DataFrames e tabelas com SparkR e sparklyr

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

gerenciar código com pastas Git do Notebook e do Databricks

Databricks Notebook suporta R. Esses Notebook 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 experimentos machine learning de acompanhamento. Comece importando um Notebook. Depois de ter acesso a um clusters, você pode anexar um Notebook aos clusters e executar o Notebook.

As pastas Git da Databricks permitem que os usuários sincronizem o Notebook e outros arquivos com os repositórios Git. As pastas Git da Databricks ajudam no controle de versão do código e na colaboração, e podem simplificar a importação de um repositório completo de código para a Databricks, a visualização de versões anteriores do Notebook e a integração com o desenvolvimento do IDE. Comece clonando um repositório Git remoto. Em seguida, o senhor pode abrir ou criar o Notebook com o clone do repositório, anexar o Notebook a um cluster e executar o Notebook.

Clusters

Tecidos de dados compute fornecem gerenciamento de computação para nós únicos e grandes clusters. O senhor pode personalizar o hardware e a biblioteca dos clusters de acordo com suas necessidades. O cientista de dados geralmente começa a trabalhar criando um cluster ou usando um cluster compartilhado existente. Depois de ter acesso aos clusters, o senhor pode anexar um Notebook aos clusters ou executar um Job nos clusters.

Nó único R e R distribuído

Os clusters Databricks consistem em um nó de driver Apache Spark e zero ou mais nós worker Spark (também conhecido como executor). O nó do driver mantém o estado Notebook anexado, mantém o SparkContext, interpreta os comandos Notebook e da biblioteca e executa o mestre Spark que coordena com os executores do Spark. nós worker execução dos executores do Spark, um executor do Spark por nó worker .

Um cluster de nó único tem um nó de driver e nenhum nó worker, com o Spark sendo executado no modo local para dar suporte ao acesso a tabelas gerenciadas pelo Databricks. Os clusters de nó único suportam RStudio, Notebook e biblioteca e são úteis para projetos de 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), o senhor deve usar clusters de vários nós ou distribuídos. Os clusters distribuídos têm um nó de driver e um ou mais nós de worker. Os clusters distribuídos são compatíveis não apenas com o RStudio, o Notebook e a biblioteca, mas também com pacotes R, como o SparkR e o sparkly, que foram 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 nos nós do site worker. Para saber mais sobre o sparklyr e o SparkR, consulte Comparação entre SparkR e sparklyr.

Algumas funções SparkR e sparklyr que tiram proveito particular da distribuição de trabalho relacionado entre nós worker incluem o seguinte:

  • sparklyr::spark_apply: código R arbitrário de execução em escala dentro de um clusters. 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::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: execução da função especificada sobre uma lista de elementos, distribuindo os cálculos com Spark.

Para obter exemplos, consulte Notebook Distributed R: User Defined Functions in Spark.

Databricks Container serviço

O Databricks Container Services permite especificar uma Docker Image ao criar clusters. Databricks fornece a imagem base databricksruntime/rbase no Docker Hub como um exemplo para lançar clusters Databricks Container Services com suporte R. Veja também o Dockerfile usado para gerar esta imagem base.

bibliotecas

Os clusters 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 Notebook e Job.

comece com a biblioteca default no Databricks Runtime notas sobre a versão versões e compatibilidade. Use o Databricks Runtime for Machine Learning para cargas de trabalho de machine learning. Para obter listas completas de bibliotecas pré-instaladas, consulte a seção “Biblioteca R instalada” para o Databricks Runtime de destino em Databricks Runtime notas sobre a versão versões e compatibilidade.

Você pode customizar seu ambiente usando as bibliotecas R com escopoNotebook, que permitem que você modifique seu Notebook ou ambiente Job com bibliotecas do CRAN ou outros repositórios. Para fazer isso, você pode usar a função familiar install.pacote de utils. O exemplo a seguir instala o pacote Arrow R do repositório CRAN default :

install.packages("arrow")

Se você precisar de uma versão mais antiga do que a incluída no Databricks Runtime, poderá usar um Notebook para executar a função install_version de 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 maneira estão disponíveis em clusters. Eles têm como escopo o usuário que os instala. Isso permite que você instale várias versões do mesmo pacote na mesma compute sem criar conflitos de pacote.

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

Para mais detalhes, consulte biblioteca.

Para instalar um pacote personalizado em uma biblioteca:

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

  2. Copie o arquivo de pacote personalizado do computador de desenvolvimento para o Databricks workspace. Para opções, consulte biblioteca.

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

    Por exemplo, de um Notebook em sua 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, 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 customizado como uma biblioteca em cada nó em um clusters, você deve usar O que são init script?.

Visualizações

Databricks R Notebook oferece suporte a vários tipos de visualizações usando a função display.

Empregos

Você pode automatizar as cargas de trabalho do R conforme agendadas ou acionadas Criação Notebook e execução de trabalhos do Databricks no Databricks.

  • Para obter detalhes sobre como criar um Job por meio da interface do usuário, consulte Criar um Job.

  • A API Jobs permite criar, editar e excluir Job.

  • A CLI do Databricks fornece uma interface de linha de comando conveniente para chamar a API Jobs.

Aprendizado de máquina

Databricks oferece suporte a uma ampla variedade de cargas de trabalho machine learning (ML), incluindo ML tradicional em dados tabulares, aprendizagem profunda para visão computacional e processamento de linguagem natural, sistemas de recomendação, gráficos analíticos e muito mais. Para obter informações gerais sobre aprendizado de máquina no Databricks, consulte Databricks Runtime for Machine Learning.

Para algoritmos de ML, você pode usar a biblioteca pré-instalada no Databricks Runtime for Machine Learning. Você também pode instalar uma biblioteca personalizada.

Para operações machine learning (MLOps), a Databricks fornece um serviço gerenciado para a biblioteca de código aberto MLflow. Com o acompanhamento do MLflow, o senhor pode registrar o desenvolvimento de modelos e salvá-los em formatos reutilizáveis. O senhor pode usar o MLflow Model Registry para gerenciar e automatizar a promoção de modelos para produção. Jobs e servindo modelo permitem modelos de hospedagem como lotes e transmissão Job como endpoint 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 do MLflow R.

ferramentas de desenvolvedor R

Além do Databricks Notebook, você também pode usar as seguintes ferramentas de desenvolvedor R:

customização da sessão R

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

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

Recursos adicionais