Udostępnij za pośrednictwem


Zarządzanie biblioteką języka R

Biblioteki udostępniają kod wielokrotnego użytku, który można uwzględnić w programach lub projektach platformy Microsoft Fabric Spark.

Usługa Microsoft Fabric obsługuje środowisko uruchomieniowe języka R z wieloma popularnymi pakietami języka R typu open source, w tym TidyVerse, wstępnie zainstalowanymi. Po uruchomieniu wystąpienia platformy Spark te biblioteki są automatycznie dołączane i dostępne do natychmiastowego użycia w notesach lub definicjach zadań platformy Spark.

Może być konieczne zaktualizowanie bibliotek języka R z różnych powodów. Na przykład jedna z podstawowych zależności wydała nową wersję lub zespół utworzył pakiet niestandardowy, który jest potrzebny w klastrach Spark.

Istnieją dwa typy bibliotek, które można uwzględnić w zależności od scenariusza:

  • biblioteki kanałów informacyjnych odnoszą się do tych, które znajdują się w źródłach publicznych lub repozytoriach, takich jak CRAN lub GitHub.

  • biblioteki niestandardowe to kod utworzony przez Ciebie lub Twoją organizację, .tar.gz można zarządzać za pośrednictwem portali zarządzania bibliotekami.

W usłudze Microsoft Fabric są zainstalowane dwa poziomy pakietów:

  • Environment: Zarządzaj bibliotekami poprzez środowisko , aby ponownie użyć tego samego zestawu bibliotek w różnych notesach lub zadaniach.

  • Sesja: Instalacja na poziomie sesji tworzy środowisko dla określonej sesji notatnika. Zmiana bibliotek na poziomie sesji nie jest utrwalana między sesjami.

Podsumowanie bieżących dostępnych zachowań zarządzania biblioteką języka R:

Typ biblioteki Instalacja środowiska Instalacja na poziomie sesji
Źródło danych języka R (CRAN) Nieobsługiwane Obsługiwane
Niestandardowy język R Wspierane Obsługiwane

Warunki wstępne

  • Pobierz subskrypcję usługi Microsoft Fabric . Możesz też utworzyć bezpłatne konto wersji próbnej usługi Microsoft Fabric.

  • Zaloguj się do usługi Microsoft Fabric.

  • Użyj przełącznika środowiska w lewej dolnej części strony głównej, aby przełączyć się na Fabric.

    Zrzut ekranu przedstawiający menu przełącznika doświadczeń, pokazujący, gdzie wybrać opcję Nauka o danych.

Biblioteki języka R na poziomie sesji

Podczas interaktywnej analizy danych lub uczenia maszynowego możesz wypróbować nowsze pakiety lub mogą być potrzebne pakiety, które są obecnie niedostępne w obszarze roboczym. Zamiast aktualizować ustawienia obszaru roboczego, można użyć pakietów o zakresie sesji, aby dodawać zależności sesji, zarządzać nimi i aktualizować je.

  • Podczas instalowania bibliotek pod względem zakresu sesji tylko bieżący notes ma dostęp do określonych bibliotek.
  • Te biblioteki nie mają wpływu na inne sesje ani zadania korzystające z tej samej puli platformy Spark.
  • Te biblioteki są instalowane w oparciu o podstawowe biblioteki środowiska uruchomieniowego i na poziomie puli.
  • Biblioteki notesów mają najwyższy priorytet.
  • Biblioteki języka R w zakresie sesji nie są utrwalane między sesjami. Te biblioteki są instalowane na początku każdej sesji po wykonaniu powiązanych poleceń instalacji.
  • Biblioteki R oskópowane do sesji są automatycznie instalowane na węzłach sterownika i węzłach roboczych.

Notatka

Polecenia zarządzania bibliotekami języka R są wyłączone podczas uruchamiania zadań potoku. Jeśli chcesz zainstalować pakiet w potoku, musisz użyć funkcji zarządzania biblioteką na poziomie obszaru roboczego.

Instalowanie pakietów języka R z usługi CRAN

Bibliotekę języka R można łatwo zainstalować z CRAN.

# install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

Możesz również użyć migawek CRAN jako repozytorium, aby zapewnić pobranie tej samej wersji pakietu za każdym razem.

# install a package from CRAN snapsho
install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Instalowanie pakietów języka R przy użyciu narzędzia devtools

Biblioteka devtools upraszcza tworzenie pakietów w celu przyspieszenia typowych zadań. Ta biblioteka jest instalowana w domyślnym środowisku uruchomieniowym usługi Microsoft Fabric.

Możesz użyć devtools, aby określić określoną wersję biblioteki do zainstalowania. Te biblioteki są instalowane we wszystkich węzłach w klastrze.

# Install a specific version. 
install_version("caesar", version = "1.0.0")

Podobnie możesz zainstalować bibliotekę bezpośrednio z usługi GitHub.

# Install a GitHub library. 

install_github("jtilly/matchingR")

Obecnie w usłudze Microsoft Fabric są obsługiwane następujące funkcje devtools:

Komenda Opis
install_github() Instaluje pakiet języka R z usługi GitHub
install_gitlab() Instaluje pakiet języka R z narzędzia GitLab
install_bitbucket() Instaluje pakiet języka R z usługi BitBucket
install_url() Instaluje pakiet języka R z dowolnego adresu URL
install_git() Instaluje z dowolnego repozytorium git
install_local() Instaluje z pliku lokalnego na dysku
install_version() Instaluje z określonej wersji w usłudze CRAN

Instalowanie bibliotek niestandardowych języka R

Aby użyć biblioteki niestandardowej na poziomie sesji, należy najpierw przekazać ją do dołączonej usługi Lakehouse.

  1. Otwórz zeszyt, w którym chcesz użyć biblioteki niestandardowej.

  2. Po lewej stronie wybierz pozycję Dodaj, aby dodać istniejący lakehouse lub utworzyć nowy lakehouse.

    Zrzut ekranu przedstawiający sposób dodawania lakehouse do notesu.

  3. Kliknij prawym przyciskiem myszy lub wybierz pozycję "..." obok Files, aby przesłać plik .tar.gz.

    Zrzut ekranu przedstawiający sposób przekazywania pliku do folderu lakehouse Files.

  4. Po przesłaniu wróć do notatnika. Użyj następującego polecenia, aby zainstalować bibliotekę niestandardową w sesji:

    install.packages("filepath/filename.tar.gz", repos = NULL, type = "source")
    

Wyświetlanie zainstalowanych bibliotek

Wykonaj zapytanie o wszystkie biblioteki zainstalowane w sesji przy użyciu polecenia library.

# query all the libraries installed in current session
library()

Użyj funkcji packageVersion, aby sprawdzić wersję biblioteki:

# check the package version
packageVersion("caesar")

Usuwanie pakietu języka R z sesji

Możesz użyć funkcji detach, aby usunąć bibliotekę z przestrzeni nazw. Te biblioteki pozostają na dysku, dopóki nie zostaną ponownie załadowane.

# detach a library

detach("package: caesar")

Aby usunąć pakiet o zakresie sesji z notatnika, użyj polecenia remove.packages(). Ta zmiana biblioteki nie ma wpływu na inne sesje w tym samym klastrze. Użytkownicy nie mogą odinstalować ani usuwać wbudowanych bibliotek domyślnego środowiska uruchomieniowego usługi Microsoft Fabric.

Nota

Nie można usunąć podstawowych pakietów, takich jak SparkR, SparklyR lub R.

remove.packages("caesar")

Biblioteki języka R o zakresie sesji i SparkR

Biblioteki o zakresie notesu są dostępne w przypadku procesów roboczych platformy SparkR.

install.packages("stringr")
library(SparkR)

str_length_function <- function(x) {
  library(stringr)
  str_length(x)
}

docs <- c("Wow, I really like the new light sabers!",
               "That book was excellent.",
               "R is a fantastic language.",
               "The service in this restaurant was miserable.",
               "This is neither positive or negative.")

spark.lapply(docs, str_length_function)

Biblioteki R w zakresie sesji i pakiet sparklyr

Za pomocą spark_apply() w interfejsie sparklyr można użyć dowolnych pakietów języka R wewnątrz platformy Spark. Domyślnie w sparklyr::spark_apply()argument packages ustawia wartość FALSE. Spowoduje to skopiowanie bibliotek w bieżących bibliotekach libPaths do procesów roboczych, co umożliwia importowanie i używanie ich w ramach procesów roboczych. Możesz na przykład uruchomić następujące polecenie, aby wygenerować wiadomość zaszyfrowaną metodą Cezara z sparklyr::spark_apply():

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

spark_version <- sparkR.version()
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)

apply_cases <- function(x) {
  library(caesar)
  caesar("hello world")
}
sdf_len(sc, 5) %>%
  spark_apply(apply_cases, packages=FALSE)

Dowiedz się więcej o funkcjach języka R: