Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
renv é um pacote R que permite aos usuários gerenciar dependências R específicas para o notebook.
Usando renv, você pode criar e gerenciar o ambiente de biblioteca R para seu projeto, salvar o estado dessas bibliotecas em um lockfilee, posteriormente, restaurar bibliotecas, conforme necessário. Estas ferramentas podem ajudar a tornar os projetos mais isolados, portáteis e reproduzíveis.
Instalar renv
Você pode instalar renv como uma biblioteca com âmbito de cluster ou como uma biblioteca com âmbito de notebook. Para instalar renv como uma biblioteca com escopo de bloco de anotações, use:
require(devtools)
install_version(
package = "renv",
repos = "http://cran.us.r-project.org"
)
O Databricks recomenda o uso de um instantâneo CRAN como repositório para corrigir a versão do pacote.
Inicializar renv sessão com bibliotecas R pré-instaladas
A primeira etapa ao usar renv é inicializar uma sessão usando renv::init()o . Defina libPaths para alterar o local de download padrão para o caminho da biblioteca no âmbito do bloco de notas do R.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths()))
Use renv para instalar pacotes adicionais
Agora pode usar a API do renv para instalar e remover pacotes R. Por exemplo, para instalar a versão mais recente do digest, execute o seguinte dentro de uma célula do bloco de anotações.
renv::install("digest")
Para instalar uma versão antiga do digest, execute o seguinte dentro de uma célula de um notebook.
renv::install("digest@0.6.18")
Para instalar digest a partir do GitHub, execute o seguinte dentro de uma célula de notebook.
renv::install("eddelbuettel/digest")
Para instalar um pacote do Bioconductor, execute o seguinte dentro de uma célula de notebook.
# (note: requires the BiocManager package)
renv::install("bioc::Biobase")
Observe que a renv::install API usa o renv cache.
Use renv para salvar seu ambiente de notebook R no DBFS
Execute o seguinte comando uma vez antes de salvar o ambiente.
renv::settings$snapshot.type("all")
Isso configura renv para gerar instantâneos de todos os pacotes que estão instalados em libPaths, não apenas daqueles que estão atualmente em uso no caderno. Consulte a documentação do renv para obter mais informações.
Agora você pode executar o seguinte dentro de uma célula de notebook para salvar o estado atual do seu ambiente.
renv::snapshot(lockfile="/dbfs/PATH/TO/WHERE/YOU/WANT/TO/SAVE/renv.lock", force=TRUE)
Isso atualiza o lockfile capturando todos os pacotes instalados no libPaths. Ele também move seu lockfile do sistema de arquivos local para DBFS, onde persiste mesmo se o cluster for encerrado ou reiniciado.
Reinstalar um renv ambiente utilizando lockfile a partir de DBFS
Primeiro, certifique-se de que seu novo cluster esteja executando uma versão do Databricks Runtime idêntica àquela em que você criou o renv ambiente pela primeira vez. Isso garante que os pacotes R pré-instalados sejam idênticos. Você pode encontrar uma lista deles nas notas de versão de cada runtime. Depois de instalar renv o, execute o seguinte dentro de uma célula do notebook.
renv::init(settings = list(external.libraries=.libPaths()))
.libPaths(c(.libPaths()[2], .libPaths()))
renv::restore(lockfile="/dbfs/PATH/TO/WHERE/YOU/SAVED/renv.lock", exclude=c("Rserve", "SparkR"))
Isso copia o seu lockfile do DBFS para o sistema de arquivos local e, em seguida, restaura todos os pacotes especificados no lockfile.
Nota
Para evitar erros de repositório ausentes, exclua os Rserve pacotes e SparkR da restauração de pacotes. Ambos os pacotes são pré-instalados em todos os tempos de execução.
renv Cache
Um recurso muito útil do renv é o cache de pacotes global, que é partilhado por todos os projetos renv no cluster. Ele acelera os tempos de instalação e economiza espaço em disco. O renv cache não armazena em cache pacotes baixados por meio da devtools API ou install.packages() com quaisquer argumentos adicionais além de pkgs.