RStudio on Azure Databricks (RStudio no Azure Databricks)
Você pode usar o RStudio, um ambiente de desenvolvimento integrado (IDE) popular para R, para se conectar aos recursos de computação do Azure Databricks nos espaços de trabalho do Azure Databricks. Use o RStudio Desktop para se conectar a um cluster do Azure Databricks ou a um armazém SQL a partir de sua máquina de desenvolvimento local. Você também pode usar seu navegador da Web para entrar em seu espaço de trabalho do Azure Databricks e, em seguida, conectar-se a um cluster do Azure Databricks que tenha o Servidor RStudio instalado , dentro desse espaço de trabalho.
Ligar utilizando o RStudio Desktop
Use o RStudio Desktop para se conectar a um cluster remoto do Azure Databricks ou a um armazém SQL a partir de sua máquina de desenvolvimento local. Para se conectar nesse cenário, use uma conexão ODBC e chame funções de pacote ODBC para R, que são descritas nesta seção.
Nota
Não é possível usar pacotes como SparkR ou sparklyr neste cenário do RStudio Desktop, a menos que você também use o Databricks Connect. Como alternativa ao uso do RStudio Desktop, você pode usar seu navegador da Web para entrar no espaço de trabalho do Azure Databricks e, em seguida, conectar-se a um cluster do Azure Databricks que tenha o Servidor RStudio instalado nesse espaço de trabalho.
Para configurar o RStudio Desktop na sua máquina de desenvolvimento local:
- Transfira e instale a R 3.3.0 ou superior.
- Transfira e instale o RStudio Desktop.
- Inicie o RStudio Desktop.
(Opcional) Para criar um projeto RStudio:
- Inicie o RStudio Desktop.
- Clique em Arquivo > Novo Projeto.
- Selecione Novo Diretório > Novo Projeto.
- Escolha um novo diretório para o projeto e clique em Criar projeto.
Para criar um script R:
- Com o projeto aberto, clique em >.
- Clique em Arquivo > Salvar como.
- Nomeie o arquivo e clique em Salvar.
Para se conectar ao cluster remoto do Azure Databricks ou ao SQL warehouse por meio do ODBC for R:
Obtenha os valores Nome do host do servidor, Porta e caminho HTTP para seu cluster remoto ou SQL warehouse. Para um cluster, esses valores estão na guia JDBC/ODBC de Opções avançadas. Para um SQL warehouse, esses valores estão na guia Detalhes da conexão.
Obtenha um token de acesso pessoal do Azure Databricks.
Nota
Como prática recomendada de segurança, quando você se autentica com ferramentas, sistemas, scripts e aplicativos automatizados, o Databricks recomenda que você use tokens de acesso pessoal pertencentes a entidades de serviço em vez de usuários do espaço de trabalho. Para criar tokens para entidades de serviço, consulte Gerenciar tokens para uma entidade de serviço.
Instale e configure o driver ODBC Databricks para Windows, macOS ou Linux, com base no sistema operacional da sua máquina local.
Configure um Nome da Fonte de Dados (DSN) ODBC para seu cluster remoto ou armazém SQL para Windows, macOS ou Linux, com base no sistema operacional da sua máquina local.
A partir do console RStudio (View > Move Focus to Console), instale os pacotes odbc e DBI do CRAN:
require(devtools) install_version( package = "odbc", repos = "http://cran.us.r-project.org" ) install_version( package = "DBI", repos = "http://cran.us.r-project.org" )
De volta ao seu script R (View > Move Focus to Source), carregue o instalado
odbc
eDBI
os pacotes:library(odbc) library(DBI)
Chame a versão ODBC da função dbConnect no pacote, especificando o
DBI
driver noodbc
pacote, bem como o DSN ODBC que você criou, por exemplo, um DSN ODBC deodbc
.Databricks
conn = dbConnect( drv = odbc(), dsn = "Databricks" )
Chame uma operação através do DSN ODBC, por exemplo, uma
SELECT
instrução através da função dbGetQuery noDBI
pacote, especificando o nome da variável de conexão e aSELECT
instrução em si, por exemplo, a partir de uma tabela nomeadadiamonds
em um esquema (banco de dados) chamadodefault
:print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
O script R completo é o seguinte:
library(odbc)
library(DBI)
conn = dbConnect(
drv = odbc(),
dsn = "Databricks"
)
print(dbGetQuery(conn, "SELECT * FROM default.diamonds LIMIT 2"))
Para executar o script, na visualização de código-fonte, clique em Origem. Os resultados para o script R anterior são os seguintes:
_c0 carat cut color clarity depth table price x y z
1 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
2 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
Conectar-se a um servidor RStudio hospedado pelo Databricks
Importante
O servidor RStudio hospedado no Databricks foi preterido e só está disponível nas versões 15.4 e inferiores do Databricks Runtime. Para obter mais informações, consulte Descontinuação do RStudio Server hospedado.
Use seu navegador da Web para entrar em seu espaço de trabalho do Azure Databricks e, em seguida, conectar-se a uma computação do Azure Databricks que tenha o Servidor RStudio instalado nesse espaço de trabalho.
Para obter mais informações, consulte Conectar-se a um servidor RStudio hospedado pelo Databricks
Arquitetura de integração RStudio
Quando você usa o Servidor RStudio no Azure Databricks, o Daemon do Servidor RStudio é executado no nó do driver de um cluster do Azure Databricks. A interface do usuário da Web do RStudio é intermediada por proxy por meio do aplicativo Web Azure Databricks, o que significa que você não precisa fazer alterações na configuração da rede do cluster. Este diagrama demonstra a arquitetura do componente de integração RStudio.
Aviso
O Azure Databricks faz proxy do serviço Web RStudio da porta 8787 no driver Spark do cluster. Este proxy web destina-se a ser usado apenas com RStudio. Se você iniciar outros serviços Web na porta 8787, poderá expor seus usuários a possíveis explorações de segurança. Nem a Databricks nem a Microsoft são responsáveis por quaisquer problemas resultantes da instalação de software não suportado num cluster.
Requisitos
O cluster deve ser um cluster polivalente.
Você deve ter a permissão PODE ANEXAR A para esse cluster. O administrador do cluster pode conceder-lhe esta permissão. Consulte Permissões de computação.
O cluster não deve ter o controle de acesso à tabela, o encerramento automático ou a passagem de credenciais habilitados.
O cluster não deve ter a configuração
spark.databricks.pyspark.enableProcessIsolation
do Spark definida comotrue
.Você deve ter uma licença RStudio Server flutuante Pro para usar a edição Pro.
Nota
Embora o cluster possa usar um modo de acesso que suporte o Unity Catalog, você não pode usar o RStudio Server desse cluster para acessar dados no Unity Catalog.
Introdução: RStudio Server OS Edition
O RStudio Server Open Source Edition está pré-instalado em clusters do Azure Databricks que usam o Databricks Runtime for Machine Learning (Databricks Runtime ML).
Para abrir o RStudio Server OS Edition em um cluster, faça o seguinte:
Abra a página de detalhes do cluster.
Inicie o cluster e clique na guia Aplicativos :
Na guia Aplicativos, clique no botão Configurar RStudio. Isso gera uma senha única para você. Clique no link show para exibi-lo e copiar a senha.
Clique no link Abrir RStudio para abrir a interface do usuário em uma nova guia. Introduza o seu nome de utilizador e palavra-passe no formulário de início de sessão e inicie sessão.
A partir da interface do usuário do RStudio, você pode importar o
SparkR
pacote e configurar umaSparkR
sessão para iniciar trabalhos do Spark em seu cluster.library(SparkR) sparkR.session() # Query the first two rows of a table named "diamonds" in a # schema (database) named "default" and display the query result. df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2") showDF(df)
Você também pode anexar o pacote sparklyr e configurar uma conexão Spark.
library(sparklyr) sc <- spark_connect(method = "databricks") # Query a table named "diamonds" and display the first two rows. df <- spark_read_table(sc = sc, name = "diamonds") print(x = df, n = 2)
Primeiros passos: RStudio Workbench
Esta seção mostra como configurar e começar a usar o RStudio Workbench (anteriormente RStudio Server Pro) em um cluster do Azure Databricks. Dependendo da sua licença, o RStudio Workbench pode incluir o RStudio Server Pro.
Configurar o servidor de licenças RStudio
Para usar o RStudio Workbench no Azure Databricks, você precisa converter sua Licença Pro em uma licença flutuante. Para obter assistência, entre em contato com help@rstudio.com. Quando sua licença é convertida, você deve configurar um servidor de licenças para o RStudio Workbench.
Para configurar um servidor de licenças:
- Inicie uma pequena instância na rede do seu provedor de nuvem; O daemon do servidor de licenças é muito leve.
- Transfira e instale a versão correspondente do RStudio License Server na sua instância e inicie o serviço. Para obter instruções detalhadas, consulte o Guia de administração do RStudio Workbench.
- Verifique se a porta do servidor de licenças está aberta para instâncias do Azure Databricks.
Instalar o RStudio Workbench
Para configurar o RStudio Workbench em um cluster do Azure Databricks, você deve criar um script init para instalar o pacote binário do RStudio Workbench e configurá-lo para usar seu servidor de licenças para concessão de licenças.
Nota
Se você planeja instalar o RStudio Workbench em uma versão do Databricks Runtime que já inclui o pacote RStudio Server Open Source Edition, você precisa primeiro desinstalar esse pacote para que a instalação seja bem-sucedida.
A seguir está um arquivo de exemplo .sh
que você pode armazenar como um script de inicialização em um local, como em seu diretório pessoal como um arquivo de espaço de trabalho, em um volume do Catálogo Unity ou no armazenamento de objetos. Para obter mais informações, consulte Scripts de inicialização com escopo de cluster. O script também executa configurações de autenticação adicionais que simplificam a integração com o Azure Databricks.
Aviso
Os scripts de inicialização com escopo de cluster no DBFS estão em fim de vida. O armazenamento de scripts de inicialização no DBFS existe em alguns espaços de trabalho para dar suporte a cargas de trabalho herdadas e não é recomendado. Todos os scripts init armazenados no DBFS devem ser migrados. Para obter instruções de migração, consulte Migrar scripts init do DBFS.
#!/bin/bash
set -euxo pipefail
if [[ $DB_IS_DRIVER = "TRUE" ]]; then
sudo apt-get update
sudo dpkg --purge rstudio-server # in case open source version is installed.
sudo apt-get install -y gdebi-core alien
## Installing RStudio Workbench
cd /tmp
# You can find new releases at https://rstudio.com/products/rstudio/download-commercial/debian-ubuntu/.
wget https://download2.rstudio.org/server/bionic/amd64/rstudio-workbench-2022.02.1-461.pro1-amd64.deb -O rstudio-workbench.deb
sudo gdebi -n rstudio-workbench.deb
## Configuring authentication
sudo echo 'auth-proxy=1' >> /etc/rstudio/rserver.conf
sudo echo 'auth-proxy-user-header-rewrite=^(.*)$ $1' >> /etc/rstudio/rserver.conf
sudo echo 'auth-proxy-sign-in-url=<domain>/login.html' >> /etc/rstudio/rserver.conf
sudo echo 'admin-enabled=1' >> /etc/rstudio/rserver.conf
sudo echo 'export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' >> /etc/rstudio/rsession-profile
# Enabling floating license
sudo echo 'server-license-type=remote' >> /etc/rstudio/rserver.conf
# Session configurations
sudo echo 'session-rprofile-on-resume-default=1' >> /etc/rstudio/rsession.conf
sudo echo 'allow-terminal-websockets=0' >> /etc/rstudio/rsession.conf
sudo rstudio-server license-manager license-server <license-server-url>
sudo rstudio-server restart || true
fi
- Substitua
<domain>
pela URL do Azure Databricks e<license-server-url>
pela URL do seu servidor de licenças flutuante. - Armazene esse
.sh
arquivo como um script de inicialização em um local, como em seu diretório pessoal como um arquivo de espaço de trabalho, em um volume do Catálogo Unity ou no armazenamento de objetos. Para obter mais informações, consulte Scripts de inicialização com escopo de cluster. - Antes de iniciar um cluster, adicione esse
.sh
arquivo como um script de inicialização do local associado. Para obter instruções, consulte Scripts de inicialização com escopo de cluster. - Inicie o cluster.
Usar o RStudio Server Pro
Abra a página de detalhes do cluster.
Inicie o cluster e clique na guia Aplicativos :
Na guia Aplicativos, clique no botão Configurar RStudio.
Você não precisa da senha de uso único. Clique no link Abrir RStudio UI e ele abrirá uma sessão autenticada do RStudio Pro para você.
Na interface do usuário do RStudio, você pode anexar o
SparkR
pacote e configurar umaSparkR
sessão para iniciar trabalhos do Spark em seu cluster.library(SparkR) sparkR.session() # Query the first two rows of a table named "diamonds" in a # schema (database) named "default" and display the query result. df <- SparkR::sql("SELECT * FROM default.diamonds LIMIT 2") showDF(df)
Você também pode anexar o pacote sparklyr e configurar uma conexão Spark.
library(sparklyr) sc <- spark_connect(method = "databricks") # Query a table named "diamonds" and display the first two rows. df <- spark_read_table(sc = sc, name = "diamonds") print(x = df, n = 2)
Perguntas frequentes sobre o RStudio Server
Qual é a diferença entre RStudio Server Open Source Edition e RStudio Workbench?
O RStudio Workbench suporta uma ampla gama de recursos empresariais que não estão disponíveis na Open Source Edition. Você pode ver a comparação de recursos no site da RStudio.
Além disso, o RStudio Server Open Source Edition é distribuído sob a GNU Affero General Public License (AGPL), enquanto a versão Pro vem com uma licença comercial para organizações que não são capazes de usar o software AGPL.
Finalmente, o RStudio Workbench vem com suporte profissional e empresarial do RStudio, PBC, enquanto o RStudio Server Open Source Edition vem sem suporte.
Posso usar minha licença RStudio Workbench / RStudio Server Pro no Azure Databricks?
Sim, se você já tiver uma licença Pro ou Enterprise para o RStudio Server, poderá usar essa licença no Azure Databricks. Consulte Introdução: RStudio Workbench para saber como configurar o RStudio Workbench no Azure Databricks.
Onde o RStudio Server é executado? Preciso de gerir serviços/servidores adicionais?
Como você pode ver no diagrama na arquitetura de integração do RStudio, o daemon do Servidor RStudio é executado no nó do driver (mestre) do cluster do Azure Databricks. Com o RStudio Server Open Source Edition, não é necessário executar servidores/serviços adicionais. No entanto, para o RStudio Workbench, você deve gerenciar uma instância separada que execute o RStudio License Server.
Posso utilizar o RStudio Server num cluster padrão?
Nota
Este artigo descreve a interface do usuário de clusters herdados. Para obter informações sobre a nova interface do usuário de clusters (em visualização), incluindo alterações de terminologia para modos de acesso a clusters, consulte Referência de configuração de computação. Para obter uma comparação dos tipos de cluster novos e herdados, consulte Alterações da interface do usuário de clusters e modos de acesso ao cluster.
Sim, pode.
Posso usar o RStudio Server em um cluster com terminação automática?
Não, não pode utilizar o RStudio quando a terminação automática está ativada. A terminação automática pode limpar scripts de usuário não salvos e dados dentro de uma sessão RStudio. Para proteger os usuários contra esse cenário de perda de dados não intencional, o RStudio é desativado nesses clusters por padrão.
Para clientes que precisam limpar recursos de cluster quando eles não são usados, o Databricks recomenda o uso de APIs de cluster para limpar clusters RStudio com base em uma programação.
Como devo manter o meu trabalho no RStudio?
Recomendamos vivamente que persista o seu trabalho utilizando um sistema de controlo de versão da RStudio. O RStudio tem um ótimo suporte para vários sistemas de controle de versão e permite que você faça check-in e gerencie seus projetos. Se você não persistir seu código por meio de um dos seguintes métodos, corre o risco de perder seu trabalho se um administrador de espaço de trabalho reiniciar ou encerrar o cluster.
Um método é salvar seus arquivos (código ou dados) no O que é DBFS?. Por exemplo, se você salvar um arquivo sob /dbfs/
os arquivos não será excluído quando o cluster for encerrado ou reiniciado.
Outro método é salvar o bloco de anotações R em seu sistema de arquivos local exportando-o como Rmarkdown
e, posteriormente, importando o arquivo para a instância do RStudio. O blog Sharing R Notebooks using RMarkdown descreve as etapas com mais detalhes.
Como posso iniciar uma SparkR
sessão?
SparkR
está contido no Databricks Runtime, mas você deve carregá-lo no RStudio. Execute o seguinte código dentro do RStudio para inicializar uma SparkR
sessão.
library(SparkR)
sparkR.session()
Se houver um erro ao importar o SparkR
pacote, execute .libPaths()
e verifique se /home/ubuntu/databricks/spark/R/lib
está incluído no resultado.
Se não estiver incluído, verifique o conteúdo do /usr/lib/R/etc/Rprofile.site
. Liste /home/ubuntu/databricks/spark/R/lib/SparkR
no driver para verificar se o SparkR
pacote está instalado.
Como posso iniciar uma sparklyr
sessão?
O sparklyr
pacote deve ser instalado no cluster. Use um dos seguintes métodos para instalar o sparklyr
pacote:
- Como uma biblioteca do Azure Databricks
- Comando
install.packages()
- Interface do usuário de gerenciamento de pacotes RStudio
library(sparklyr)
sc <- spark_connect(method = “databricks”)
Como é que o RStudio se integra nos blocos de notas do Azure Databricks R?
Você pode mover seu trabalho entre notebooks e RStudio através do controle de versão.
O que é o diretório de trabalho?
Quando você inicia um projeto no RStudio, você escolhe um diretório de trabalho. Por padrão, este é o diretório base no contêiner de driver (mestre) onde o RStudio Server está sendo executado. Você pode alterar esse diretório se desejar.
Posso iniciar Shiny Apps do RStudio em execução no Azure Databricks?
Sim, você pode desenvolver e visualizar aplicativos Shiny dentro do RStudio Server no Databricks.
Não consigo usar o terminal ou o git dentro do RStudio no Azure Databricks. Como posso corrigir isso?
Certifique-se de que desativou os websockets. No RStudio Server Open Source Edition, você pode fazer isso a partir da interface do usuário.
No RStudio Server Pro, você pode adicionar allow-terminal-websockets=0
para /etc/rstudio/rsession.conf
desativar websockets para todos os usuários.
Não vejo o separador Aplicações em detalhes do cluster.
Este recurso não está disponível para todos os clientes. Você deve estar no plano Premium.