Pular para o conteúdo principal

Databricks para desenvolvedores de R

Esta seção fornece um guia para desenvolver o Notebook e o Job em Databricks usando a linguagem R.

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

  1. Importar código: Importe seu próprio código de arquivos ou repositórios Git ou tente um tutorial listado abaixo. Databricks recomenda aprender a usar o Databricks Notebook interativo.
  2. executar seu código em um clustering: Crie um cluster próprio ou garanta que o senhor tenha permissões para usar um cluster compartilhado. Anexe seu Notebook ao clustering e execute o Notebook.

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

tutorial

O tutorial a seguir fornece um código de exemplo e um Notebook para que o senhor aprenda sobre o fluxo de trabalho comum. Consulte Importar um Notebook para obter instruções sobre como importar exemplos do Notebook para o site workspace.

Referência

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

Databricks suporta dois APIs que fornecem uma interface R para Apache Spark: SparkR e Sparklyr.

SparkR

important

SparkR em Databricks está obsoleto em Databricks Runtime 16.0 e acima. Databricks recomenda o uso de Sparklyr em vez disso.

Esses 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 estrutura de dados distribuída. SparkR suporta operações como seleção, filtragem e agregação (semelhante aos quadros de dados do R), mas em grandes conjuntos de dados.

Sparklyr

Este artigo apresenta uma introdução ao Sparklyr. Sparklyr é uma interface do R para Apache Spark que oferece funcionalidade semelhante ao 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 o R, SparkR, Sparklyr e dplyr para trabalhar com data.frames do R, Spark DataFrames e tabelas Spark em Databricks.

Gerenciar código com o Notebook e Databricks Git pastas

Databricks Esses notebooks oferecem funcionalidade semelhante à do Jupyter, mas com acréscimos, como visualizações integradas usando big data, integrações Apache Spark para monitoramento de depuração e desempenho e integrações MLflow para acompanhamento de experimentos de aprendizado de máquina. Comece importando um Notebook. Depois de ter acesso a um cluster, o senhor pode anexar um Notebook ao cluster e executar o Notebook.

Databricks Git permite que os usuários sincronizem o Notebook e outros arquivos com os repositórios do Git. Databricks Git 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 o site Databricks, a visualização de versões anteriores do Notebook e a integração com o desenvolvimento do IDE. Obtenha o começar 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.

agrupamento

Databricks compute fornecem o gerenciamento compute tanto para nós únicos quanto para grandes clusters. O senhor pode personalizar o hardware de clustering e a biblioteca de acordo com suas necessidades. Depois de ter acesso a um cluster, o senhor pode anexar um Notebook ao cluster ou executar um Job no cluster.

R de nó único e R distribuído

ODatabricks clustering consiste em um Apache Spark nó Spark executor worker de driver e zero ou mais (também conhecido como). O nó do driver mantém o estado do Notebook anexado, mantém o SparkContext, interpreta o comando do Notebook e da biblioteca e executa o mestre Spark que coordena com o executor Spark. nós de trabalho executam o executor Spark, um Spark executor por nó worker.

Um clustering de nó único tem um nó driver e nenhum nó worker, com Spark em execução no modo local para dar suporte ao acesso a tabelas gerenciadas por Databricks. O clustering de nó único é compatível com RStudio, Notebook e biblioteca e é útil para projetos de R que não dependem de Spark para big data ou processamento paralelo. Consulte compute.

Para tamanhos de dados que o R tem dificuldade para processar (muitos gigabytes ou petabytes), o senhor deve usar clustering distribuído ou de vários nós. O clustering distribuído tem um nó driver e um ou mais nós worker. O clustering distribuído é compatível não apenas com RStudio, Notebook e biblioteca, mas também com pacotes R, como SparkR e sparkly, que são projetados exclusivamente para usar o clustering distribuído por meio do SparkContext. Esses pacotes fornecem os conhecidos SQL e DataFrame APIs, que permitem atribuir e executar várias Spark tarefas e comandos em paralelo nos nós worker. Para saber mais sobre Sparklyr e SparkR, consulte Comparação entre SparkR e Sparklyr.

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

  • sparklyr::spark_apply: execução de código R arbitrário em escala dentro de um clustering. Isso é especialmente útil para o uso de funcionalidades disponíveis somente no R, ou pacote R que não está disponível em Apache Spark nem em outro pacote 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 ao R como 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 data.frame.
  • SparkR::spark.lapply: executa a função especificada em uma lista de elementos, distribuindo os cálculos com Spark.

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

Databricks Container Services

Databricks Container Services permite que o senhor especifique uma imagem Docker ao criar um clustering. Databricks fornece a imagem base databricksruntime/rbase em Docker Hub como um exemplo para iniciar um clustering Databricks Container Services com suporte a R. Veja também o Dockerfile usado para gerar essa imagem base.

biblioteca

Databricks O clustering usa o Databricks Runtime, que fornece muitas bibliotecas populares prontas para uso, incluindo Apache Spark, Delta Lake, entre outras. O senhor também pode instalar pacotes R adicionais de terceiros ou personalizados no biblioteca para usar com o Notebook e o Job.

O senhor pode acessar a default biblioteca em Databricks Runtime notas sobre a versão, versões e compatibilidade. 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 "Installed R biblioteca" para o destino Databricks Runtime em Databricks Runtime notas sobre versões e compatibilidade.

É possível personalizar o ambiente usando Notebook-scoped R biblioteca, que permite modificar o ambiente do Notebook ou do Job com a biblioteca de CRAN ou de outros repositórios. Para fazer isso, o senhor pode usar a conhecida função install.pacote do site utils. O exemplo a seguir instala o pacote Arrow R a partir do repositório default CRAN :

R
install.packages("arrow")

Se o senhor precisar de uma versão mais antiga do que a incluída no site 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:

R
require(devtools)

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

O pacote instalado dessa forma está disponível em um cluster. Eles têm como escopo o usuário que os instala. Isso permite que o senhor instale várias versões do mesmo pacote no mesmo site compute sem criar conflitos de pacote.

O senhor pode instalar outras bibliotecas como biblioteca de cluster conforme necessário, por exemplo, a partir de CRAN. Para fazer isso, na interface de usuário do clustering, clique em biblioteca > Install new > CRAN e especifique o nome da biblioteca. Essa abordagem é especialmente importante quando o senhor deseja chamar funções definidas pelo usuário com SparkR ou Sparklyr.

Para obter 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 site Databricks workspace. Para opções, consulte biblioteca.

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

    Por exemplo, de um Notebook em seu workspace:

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

    Ou:

    Bash
    %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:

R
# 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, o senhor deve usar What are init script?

Visualizações

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

Empregos

O senhor pode automatizar as cargas de trabalho do R como um trabalho de notebook programado ou acionado em Databricks.

  • Para obter detalhes sobre a criação de um Job por meio da interface do usuário, consulte Configurar e editar Databricks Jobs.
  • O site Jobs API permite que o senhor crie, edite e exclua trabalhos.
  • A CLI da Databricks fornece uma interface de linha de comando conveniente para chamar a API de Jobs.

Aprendizagem automática

Databricks oferece suporte a uma ampla variedade de cargas de trabalho de aprendizado de máquina (ML), incluindo o tradicional ML em dados tabulares, aprendizado profundo para visão computacional e processamento de linguagem natural, sistemas de recomendação, análise gráfica e muito mais. Para obter informações gerais sobre aprendizado de máquina em Databricks, consulte Databricks Runtime para aprendizado de máquina.

Para os algoritmos do ML, o senhor pode usar a biblioteca pré-instalada no Databricks Runtime for Machine Learning. O senhor também pode instalar uma biblioteca personalizada.

Para operações de aprendizado de máquina (MLOps), a Databricks fornece um serviço gerenciado para a biblioteca de código aberto MLflow. Com o MLflow acompanhamento, o senhor pode registrar o desenvolvimento do modelo e salvar os modelos 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 site MLflow para o ciclo de vida do agente gen AI e do modelo ML ou os documentosMLflow R API.

Ferramentas para desenvolvedores de R

Além do Databricks Notebook, o senhor também pode usar as seguintes ferramentas de desenvolvimento do R:

Personalização da sessão R

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

Em Databricks Runtime 11.3 LTS e abaixo, esse comportamento pode ser ativado com a configuração da variável de ambiente DATABRICKS_ENABLE_RPROFILE=true.

Recurso adicional