Uma nova versão de pins
está disponível hoje em Cran, o que adiciona suporte para versão Seus conjuntos de dados e Espaços digitais Placas!
Como recapitulação rápida, o pacote Pins permite cache, descobrir e compartilhar recursos. Você pode usar pins
Em uma ampla gama de situações, desde o obtain de um conjunto de dados de um URL até a criação de fluxos de trabalho de automação complexos (Saiba mais em pins.rstudio.com). Você também pode usar pins
em combinação com Tensorflow e Keras; Por exemplo, use Cloudml Para treinar modelos nas GPUs em nuvem, mas, em vez de copiar manualmente os arquivos na instância da GPU, você pode armazená -los como pinos diretamente de R.
Para instalar esta nova versão de pins
De Cran, basta correr:
Você pode encontrar uma lista detalhada de melhorias nos pinos NOTÍCIAS arquivo.
Para ilustrar a nova funcionalidade de versão, vamos começar baixando e armazenando um conjunto de dados remotos com pinos. Para este exemplo, baixaremos o clima em Londres, isso acontece no formato JSON e requer jsonlite
ser analisado:
library(pins)
<- "https://samples.openweathermap.org/knowledge/2.5/climate?q=London,uk&appid=b6907d289e10d714a6e88b30761fae22"
weather_url
pin(weather_url, "climate") %>%
::read_json() %>%
jsonliteas.knowledge.body()
coord.lon coord.lat climate.id climate.predominant climate.description climate.icon
1 -0.13 51.51 300 Drizzle mild depth drizzle 09d
Uma vantagem de usar pins
é que, mesmo que o URL ou sua conexão com a Web fique indisponível, o código acima ainda funcionará.
Mas de volta para pins 0.4
! O novo signature
parâmetro em pin_info()
Permite recuperar a “versão” deste conjunto de dados:
pin_info("climate", signature = TRUE)
# Supply: native (information)
# Signature: 624cca260666c6f090b93c37fd76878e3a12a79b
# Properties:
# - path: climate
Você pode validar o conjunto de dados remoto não alterado especificando sua assinatura:
pin(weather_url, "climate", signature = "624cca260666c6f090b93c37fd76878e3a12a79b") %>%
::read_json() jsonlite
Se o conjunto de dados remoto mudar, pin()
falhará e você pode tomar as etapas apropriadas para aceitar as alterações atualizando a assinatura ou atualizando corretamente seu código. O exemplo anterior é útil como uma maneira de detectar mudanças na versão, mas também podemos recuperar versões específicas, mesmo quando o conjunto de dados mudar.
pins 0.4
Permite exibir e recuperar versões de serviços como Github, Kaggle e RStudio Join. Mesmo em placas que não suportam a versão nativamente, você pode optar por registrar uma placa com variations = TRUE
.
Para simplificar isso, vamos nos concentrar no Github primeiro. Registraremos uma placa do Github e fixaremos um conjunto de dados. Observe que você também pode especificar o commit
Parâmetro nas placas do GitHub como a mensagem de confirmação para essa alteração.
board_register_github(repo = "javierluraschi/datasets", department = "datasets")
pin(iris, identify = "versioned", board = "github", commit = "use iris as the principle dataset")
Agora, suponha que um colega apareça e atualize este conjunto de dados também:
pin(mtcars, identify = "versioned", board = "github", commit = "slight desire to mtcars")
A partir de agora, seu código pode ser quebrado ou, pior ainda, produzir resultados incorretos!
No entanto, como o GitHub foi projetado como um sistema de controle de versão e pins 0.4
adiciona suporte para pin_versions()
agora podemos explorar versões específicas deste conjunto de dados:
pin_versions("versioned", board = "github")
# A tibble: 2 x 4
model created creator message
1 6e6c320 2020-04-02T21:28:07Z javierluraschi slight desire to mtcars
2 01f8ddf 2020-04-02T21:27:59Z javierluraschi use iris as the principle dataset
Você pode recuperar a versão em que está interessado da seguinte forma:
pin_get("versioned", model = "01f8ddf", board = "github")
# A tibble: 150 x 5
Sepal.Size Sepal.Width Petal.Size Petal.Width Species
1 5.1 3.5 1.4 0.2 setosa
2 4.9 3 1.4 0.2 setosa
3 4.7 3.2 1.3 0.2 setosa
4 4.6 3.1 1.5 0.2 setosa
5 5 3.6 1.4 0.2 setosa
6 5.4 3.9 1.7 0.4 setosa
7 4.6 3.4 1.4 0.3 setosa
8 5 3.4 1.5 0.2 setosa
9 4.4 2.9 1.4 0.2 setosa
10 4.9 3.1 1.5 0.1 setosa
# … with 140 extra rows
Você pode seguir etapas semelhantes para RSTUDIO CONNECT e Kaggle Placas, mesmo para pinos existentes! Outros quadros gostam Amazon S3Assim, Google CloudAssim, Oceano digital e Microsoft Azure Exigir que você ative explicitamente a versão ao registrar suas placas.
Para experimentar o novo Placa de espaços digitaisprimeiro você terá que registrar esta placa e ativar a versão definindo variations
para TRUE
:
library(pins)
board_register_dospace(house = "pinstest",
key = "AAAAAAAAAAAAAAAAAAAA",
secret = "ABCABCABCABCABCABCABCABCABCABCABCABCABCA==",
datacenter = "sfo2",
variations = TRUE)
Você pode usar todos os pinos de funcionalidade, incluindo o versão:
# create pin and substitute content material in digitalocean
pin(iris, identify = "versioned", board = "pinstest")
pin(mtcars, identify = "versioned", board = "pinstest")
# retrieve variations from digitalocean
pin_versions(identify = "versioned", board = "pinstest")
# A tibble: 2 x 1
model
1 c35da04
2 d9034cd
Observe que as versões habilitadas nos serviços em nuvem requer espaço de armazenamento adicional para cada versão do conjunto de dados que está sendo armazenada:
Para saber mais, visite o Versão e Digitalocean Artigos. Para acompanhar os lançamentos anteriores:
Obrigado pela leitura junto!