RStudio em Databricks
Observação
Este recurso não está disponível no Databricks on Google Cloud a partir desta versão.
O senhor pode usar o RStudioum popular ambiente de desenvolvimento integrado (IDE) para R, para se conectar a Databricks compute recurso no espaço de trabalho Databricks. Use o RStudio Desktop para se conectar a um Databricks cluster ou a um SQL warehouse a partir de sua máquina de desenvolvimento local. O senhor também pode usar o navegador da Web para entrar no site Databricks workspace e, em seguida, conectar-se a um site Databricks cluster que tenha o servidorRStudio instalado, dentro desse site workspace.
Conectar usando o RStudio Desktop
Use o RStudio Desktop para se conectar a clusters Databricks remotos ou SQL warehouse de sua máquina de desenvolvimento local. Para se conectar neste cenário, use uma conexão ODBC e chame as funções do pacote ODBC para R, que são descritas nesta seção.
Observação
Você não pode 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 workspace do Databricks e, em seguida, conectar-se a clusters do Databricks que tenham o RStudio Server instalado nesse workspace.
Para configurar o RStudio Desktop em sua máquina de desenvolvimento local:
começar RStudio Desktop.
(Opcional) Para criar um projeto RStudio:
começar RStudio Desktop.
Clique em Arquivo > Novo Projeto.
Selecione Novo diretório > Novo projeto.
Escolha um novo diretório para o projeto e clique em Create Project.
Para criar um script R:
Com o projeto aberto, clique em File > New File > R Script.
Clique em Arquivo > Salvar como.
Nomeie o arquivo e clique em Salvar.
Para conectar-se aos clusters Databricks remotos ou ao SQL warehouse por meio do ODBC para R:
Obtenha os valores hostnamedo servidor, porta e caminho HTTP para seus clusters remotos ou SQL warehouse. Para clusters, esses valores estão na JDBC/ODBC tab de Opções avançadas. Para um SQL warehouse, esses valores estão na Detalhes tab da conexão .
Obtenha um access tokenpessoal do Databricks.
Observação
Como prática recomendada de segurança, ao se autenticar com ferramentas, sistemas, scripts e aplicativos automatizados, o site Databricks recomenda que o senhor use o access tokens pessoal pertencente à entidade de serviço em vez do workspace de usuários. Para criar o site tokens para uma entidade de serviço, consulte gerenciar tokens para uma entidade de serviço.
Instale e configure o driver ODBC do Databricks para Windows, macOS ou Linux, com base no sistema operacional do seu computador local.
Configure um nome de fonte de dados (DSN) ODBC para seus clusters remotos ou SQL warehouse para Windows, macOS ou Linux, com base no sistema operacional da sua máquina local.
No console do 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 os pacotes
odbc
eDBI
instalados:library(odbc) library(DBI)
Chame a versão ODBC da função dbConnect no pacote
DBI
, especificando o driverodbc
no pacoteodbc
, bem como o ODBC DSN que você criou, por exemplo, um ODBC DSN deDatabricks
.conn = dbConnect( drv = odbc(), dsn = "Databricks" )
Chame uma operação por meio do ODBC DSN, por exemplo, uma instrução
SELECT
por meio da função dbGetQuery no pacoteDBI
, especificando o nome da variável de conexão e a própria instruçãoSELECT
, por exemplo, de uma tabela chamadadiamonds
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 view código-fonte, clique em Código-fonte. 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
Conecte-se a um servidor RStudio hospedado pela Databricks
Importante
Databricks-hosted RStudio Server está obsoleto e só está disponível nas versões 15.4 e abaixo do Databricks Runtime. Para obter mais informações, consulte a depreciação do Hosted RStudio Server.
Use o navegador da Web para fazer login no site Databricks workspace e, em seguida, conecte-se a um site Databricks compute que tenha o servidorRStudio instalado nesse site workspace.
Para obter mais informações, consulte Conectar-se a um servidor Databricks-hosted RStudio
Arquitetura de integração do RStudio
Quando você usa o RStudio Server no Databricks, a execução do RStudio Server Daemon no nó do driver de clusters do Databricks. A interface do usuário da Web do RStudio é proxy por meio do aplicativo da Web do Databricks, o que significa que você não precisa fazer nenhuma alteração na configuração de rede clusters . Este diagrama demonstra a arquitetura do componente de integração do RStudio.
Aviso
Databricks faz proxy do serviço web RStudio da porta 8787 no driver Spark dos clusters . Este proxy da web destina-se a ser usado apenas com o RStudio. Se você iniciar outros serviços da Web na porta 8787, poderá expor seus usuários a possíveis falhas de segurança. Databricks não é responsável por quaisquer problemas resultantes da instalação de software sem suporte em clusters.
Requisitos
Os clusters devem ser um todo-propósito dos clusters .
O senhor deve ter permissão CAN ATTACH TO para esses clusters. O administrador do cluster pode conceder essa permissão ao senhor. Consulte Permissões de computação.
O cluster não deve ter controle de acesso da tabela ou encerramento automático habilitado.
Os clusters não devem utilizar o modo de acesso compartilhado.
Os clusters não devem ter a configuração do Spark
spark.databricks.pyspark.enableProcessIsolation
definida comotrue
.Você deve ter uma licença Pro flutuante do RStudio Server para usar a edição Pro.
Observação
Embora os clusters possam usar um modo de acesso compatível com o Unity Catalog, o senhor não pode usar o RStudio Server desses clusters para acessar dados no Unity Catalog.
Começar: RStudio Server OS Edition
O RStudio Server código aberto Edition está pré-instalado em clusters Databricks que usam Databricks Runtime para Machine Learning (Databricks Runtime ML).
Para abrir o RStudio Server OS Edition em clusters, faça o seguinte:
Abra a página de detalhes dos clusters .
comece os clusters e clique na Aplicativos tab:
Na tab Aplicativos , clique no botão Configurar RStudio . Isso gera uma senha única para você. Clique no link show para exibi-lo e copie a senha.
Clique no link Abrir RStudio para abrir a IU em uma nova tab. Digite seu nome de usuário e senha no formulário de login e faça login.
Na IU do RStudio, você pode importar o pacote
SparkR
e configurar uma sessãoSparkR
para iniciar o Spark Job em seus clusters.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)
Começar: RStudio Workbench
Esta seção mostra como configurar e começar a usar o RStudio Workbench (anteriormente RStudio Server Pro) em um cluster Databricks. Dependendo de sua licença, o RStudio Workbench pode incluir o RStudio Server Pro.
Configurar servidor de licença RStudio
Para usar o RStudio Workbench no Databricks, você precisa converter sua licença Pro em uma licença flutuante. Para obter ajuda, entre em contato com help@rstudio.com. Quando sua licença for convertida, você deverá configurar um servidor de licença para o RStudio Workbench.
Para configurar um servidor de licenças:
Inicie uma pequena instância em sua rede de provedor cloud ; o daemon do servidor de licenças é muito leve.
downloads e instale a versão correspondente do RStudio License Server em sua instância, e comece o serviço. Para obter instruções detalhadas, consulte o guia de administração do RStudio Workbench.
Certifique-se de que a porta do servidor de licenças esteja aberta para instâncias do Databricks.
Instale o RStudio Workbench
Para configurar o RStudio Workbench em um cluster Databricks, o senhor deve criar um init script para instalar o pacote binário do RStudio Workbench e configurá-lo para usar o servidor de licenças para a concessão de licenças.
Observação
Se você planeja instalar o RStudio Workbench em uma versão Databricks Runtime que já inclui o pacote RStudio Server código aberto Edition, você precisa primeiro desinstalar esse pacote para que a instalação seja bem-sucedida.
A seguir, um exemplo de arquivo .sh
que o senhor pode armazenar como init script em um local como o seu diretório pessoal como um arquivo workspace, em um volume Unity Catalog ou no armazenamento de objetos. Para obter mais informações, consulte Script de inicialização com escopo de cluster. O script também executa configurações adicionais de autenticação que simplificam a integração com o Databricks.
Aviso
O script de inicialização com escopo de clusters no DBFS está no fim da vida útil. O armazenamento do script de inicialização no DBFS existe em alguns espaços de trabalho para dar suporte a cargas de trabalho legadas e não é recomendado. Todos os scripts de inicialização armazenados no DBFS devem ser migrados. Para obter instruções de migração, consulte Migrar script de inicialização 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 Databricks e<license-server-url>
pela URL do servidor de licença flutuante.Armazene esse arquivo
.sh
como um init script em um local como, por exemplo, em seu diretório pessoal como um arquivo workspace, em um volume Unity Catalog ou no armazenamento de objetos. Para obter mais informações, consulte Script de inicialização com escopo de cluster.Antes de iniciar um cluster, adicione esse arquivo
.sh
como um init script a partir do local associado. Para obter instruções, consulte Script de inicialização com escopo de cluster.Inicie os clusters.
Usar RStudio Server Pro
Abra a página de detalhes dos clusters .
comece os clusters e clique na Aplicativos tab:
Na Aplicativos tab, clique no botão Configurar RStudio .
Você não precisa da senha de uso único. Clique no link Open RStudio UI e ele abrirá uma sessão autenticada do RStudio Pro para você.
Na IU do RStudio, você pode anexar o pacote
SparkR
e configurar uma sessãoSparkR
para iniciar o Spark Job em seus clusters.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 do servidor RStudio
Qual a diferença entre o RStudio Server código aberto Edition e o RStudio Workbench?
O RStudio Workbench oferece suporte a uma ampla gama de recursos corporativos que não estão disponíveis na edição código aberto. Você pode ver a comparação de recursos no site do RStudio.
Além disso, o RStudio Server código aberto Edition é distribuído sob a licença GNU Affero General Public License (AGPL), enquanto a versão Pro vem com uma licença comercial para organizações que não podem usar o software AGPL.
Por fim, o RStudio Workbench vem com suporte profissional e empresarial do RStudio, PBC, enquanto o RStudio Server código aberto Edition vem sem suporte.
Posso usar minha licença RStudio Workbench / RStudio Server Pro no Databricks?
Sim, se você já possui uma licença Pro ou Enterprise para RStudio Server, pode usar essa licença no Databricks. Veja Get começar: RStudio Workbench para saber como configurar o RStudio Workbench no Databricks.
Onde está a execução do RStudio Server? Preciso gerenciar algum serviço/servidor adicional?
Como você pode ver no diagrama na arquitetura de integração do RStudio, a execução do daemon do RStudio Server no nó do driver (mestre) de seus clusters Databricks. Com o RStudio Server edição código aberto, você não precisa executar nenhum servidor/serviço adicional. No entanto, para o RStudio Workbench, você deve gerenciar uma instância separada que execute o RStudio License Server.
Posso usar o RStudio Server em clusters com encerramento automático?
Não, você não pode usar o RStudio quando o encerramento automático está ativado. A rescisão automática pode limpar scripts e dados do usuário não salvos dentro de uma sessão do RStudio. Para proteger os usuários contra esse cenário de perda de dados não intencional, o RStudio é desabilitado nesses clusters por default.
Para clientes que necessitam de limpeza de recursos de cluster quando não são usados, a Databricks recomenda o uso de APIs de cluster para limpar clusters RStudio com base em um programar.
Como devo persistir meu trabalho no RStudio?
Recomendamos enfaticamente que você persista em seu trabalho usando um sistema de controle de versão do RStudio. RStudio tem ó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 métodos a seguir, corre o risco de perder seu trabalho se um administrador workspace reiniciar ou encerrar os clusters.
Um dos métodos é salvar seus arquivos (código ou dados) no servidor de arquivos DBFS. Por exemplo, se o senhor salvar um arquivo em /dbfs/
, os arquivos não serão excluídos quando o cluster for encerrado ou reiniciado.
Outro método é salvar o R Notebook em seu sistema de arquivos local, exportando-o como Rmarkdown
e, posteriormente, importando o arquivo para a instância do RStudio. Os blogs compartilhamento R Notebooks usando RMarkdown descrevem os passos com mais detalhes.
Como faço para iniciar uma sessão SparkR
?
SparkR
está contido no Databricks Runtime, mas você deve carregá-lo no RStudio. execute o seguinte código dentro do RStudio para inicializar uma sessão SparkR
.
library(SparkR)
sparkR.session()
Se houver um erro ao importar o pacote SparkR
, 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 de /usr/lib/R/etc/Rprofile.site
. Liste /home/ubuntu/databricks/spark/R/lib/SparkR
no driver para verificar se o pacote SparkR
está instalado.
Como faço para iniciar uma sessão sparklyr
?
O pacote sparklyr
deve ser instalado nos clusters. Use um dos seguintes métodos para instalar o pacote sparklyr
:
Como uma biblioteca Databricks
install.packages()
ComandoIU de gerenciamento de pacotes do RStudio
library(sparklyr)
sc <- spark_connect(method = “databricks”)
Como o RStudio se integra ao Databricks R Notebook?
Você pode mover seu trabalho entre Notebook e o RStudio por meio do controle de versão.
Qual é o diretório de trabalho?
Ao iniciar um projeto no RStudio, você escolhe um diretório de trabalho. Por default este é o diretório inicial no contêiner do driver (mestre) em que o RStudio Server está sendo executado. Você pode alterar esse diretório, se desejar.
Não consigo usar o terminal ou git dentro do RStudio no Databricks. Como posso consertar isso?
Certifique-se de ter desativado websockets. No RStudio Server código aberto Edition, você pode fazer isso na interface do usuário.
No RStudio Server Pro, você pode adicionar allow-terminal-websockets=0
a /etc/rstudio/rsession.conf
para desabilitar websockets para todos os usuários.
Não vejo a guia Aplicativos nos detalhes clusters .
Este recurso não está disponível para todos os clientes. Você deve estar no plano Premium.