R-kódtár kezelése

A kódtárak olyan újrafelhasználható kódot biztosítanak, amelyet érdemes lehet belefoglalni a Microsoft Fabric Spark programjaiba vagy projektjeibe.

A Microsoft Fabric számos népszerű nyílt forráskódú R-csomaggal támogatja az R-futtatókörnyezetet, beleértve az előre telepített TidyVerse-t is. A Spark-példány indításakor ezek a kódtárak automatikusan bekerülnek, és azonnal felhasználhatók a jegyzetfüzetekben vagy a Spark-feladatdefiníciókban.

Előfordulhat, hogy az R-kódtárakat különböző okokból frissítenie kell. Például az egyik alapvető függőség kiadott egy új verziót, vagy a csapata létrehozott egy egyéni csomagot, amely a Spark-fürtökben elérhető.

A forgatókönyv alapján kétféle kódtárat érdemes használni:

  • A hírcsatorna-kódtárak a nyilvános forrásokban vagy adattárakban, például a CRAN-ban vagy a GitHubon találhatóakra vonatkoznak.

  • Az egyéni kódtárak az Ön vagy a szervezete által létrehozott kód, .tar.gz a könyvtárfelügyeleti portálokon keresztül kezelhetők.

A Microsoft Fabricre két csomagszint van telepítve:

  • Környezet: A tárak környezeten keresztüli kezelése ugyanazon tárkészlet több jegyzetfüzetben vagy feladatban való újrafelhasználásához.

  • Munkamenet : Egy munkamenetszintű telepítés létrehoz egy környezetet egy adott jegyzetfüzet-munkamenethez. A munkamenetszintű kódtárak módosítása nem marad meg a munkamenetek között.

Az R-kódtár aktuális kezelési viselkedésének összegzése:

Kódtár típusa Környezet telepítése Munkamenetszintű telepítés
R-hírcsatorna (CRAN) Nem támogatott Támogatott
Egyéni R Támogatott Támogatott

Előfeltételek

  • Microsoft Fabric-előfizetés lekérése. Vagy regisztráljon egy ingyenes Microsoft Fabric-próbaverzióra.

  • Jelentkezzen be a Microsoft Fabricbe.

  • A kezdőlap bal oldalán található élménykapcsolóval válthat a Synapse Adattudomány felületre.

    Képernyőkép a felületváltó menüjéről, amelyen látható, hogy hol válassza ki a Adattudomány.

Munkamenetszintű R-kódtárak

Interaktív adatelemzés vagy gépi tanulás során előfordulhat, hogy újabb csomagokat próbál ki, vagy olyan csomagokra van szüksége, amelyek jelenleg nem érhetők el a munkaterületen. A munkaterület beállításainak frissítése helyett munkamenet-hatókörű csomagokkal adhat hozzá, kezelhet és frissíthet munkamenetfüggőségeket.

  • Munkamenet-hatókörű kódtárak telepítésekor csak az aktuális jegyzetfüzet fér hozzá a megadott tárakhoz.
  • Ezek a kódtárak nem befolyásolják az azonos Spark-készletet használó más munkameneteket vagy feladatokat.
  • Ezek a kódtárak az alap futtatókörnyezeti és készletszintű kódtárakra vannak telepítve.
  • A jegyzetfüzettárak a legmagasabb prioritást élvezik.
  • A munkamenet-hatókörű R-kódtárak nem maradnak meg a munkamenetek között. Ezek a kódtárak minden munkamenet elején települnek a kapcsolódó telepítési parancsok végrehajtásakor.
  • A munkamenet-hatókörű R-kódtárak automatikusan települnek az illesztőprogram és a feldolgozó csomópontok között is.

Feljegyzés

Az R-kódtárak kezelésének parancsai le vannak tiltva a folyamatfeladatok futtatásakor. Ha egy csomagot szeretne telepíteni egy folyamaton belül, a tárkezelési képességeket a munkaterület szintjén kell használnia.

R-csomagok telepítése a CRAN-ból

Az R-kódtárat egyszerűen telepítheti a CRAN-ból.

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

A CRAN-pillanatképeket adattárként is használhatja annak biztosítására, hogy minden alkalommal ugyanazt a csomagverziót töltse le.

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

R-csomagok telepítése devtools használatával

A devtools kódtár leegyszerűsíti a csomagfejlesztést a gyakori feladatok felgyorsítása érdekében. Ez a kódtár az alapértelmezett Microsoft Fabric-futtatókörnyezeten belül van telepítve.

A telepítendő kódtár egy adott verziójának megadására használható devtools . Ezek a kódtárak a fürt összes csomópontja között telepítve vannak.

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

Hasonlóképpen, közvetlenül a GitHubról is telepíthet tárat.

# Install a GitHub library. 

install_github("jtilly/matchingR")

A Microsoft Fabric jelenleg a következő devtools függvényeket támogatja:

Parancs Leírás
install_github() R-csomag telepítése a GitHubról
install_gitlab() R-csomag telepítése a GitLab-ből
install_bitbucket() R-csomag telepítése a BitBucketből
install_url() R-csomag telepítése tetszőleges URL-címről
install_git() Telepítés tetszőleges Git-adattárból
install_local() Telepítés helyi fájlból lemezre
install_version() Telepítések egy adott verzióról a CRAN-on

Egyéni R-kódtárak telepítése

Munkamenetszintű egyéni tár használatához először fel kell töltenie egy csatolt Lakehouse-ba.

  1. A bal oldalon válassza a Hozzáadás lehetőséget egy meglévő tóház hozzáadásához vagy egy tóház létrehozásához.

    Képernyőkép arról, hogyan vehet fel egy lakehouse-t a jegyzetfüzetbe.

  2. Ha fájlokat szeretne hozzáadni ehhez a tóházhoz, válassza ki a munkaterületet, majd válassza ki a tóházat.

    Képernyőkép arról, hogyan navigálhat a lakehouse-ba fájlok hozzáadásához.

  3. Kattintson a jobb gombbal, vagy válassza a "..." a Fájlok elemet a .tar.gz fájl feltöltéséhez.

    Képernyőkép arról, hogyan töltheti fel a fájlt a lakehouse Files mappába.

  4. A feltöltés után térjen vissza a jegyzetfüzethez. A következő paranccsal telepítse az egyéni tárat a munkamenetbe:

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

Telepített kódtárak megtekintése

A parancs használatával lekérdezheti a munkamenetben telepített összes kódtárat library .

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

A függvény használatával packageVersion ellenőrizze a kódtár verzióját:

# check the package version
packageVersion("caesar")

R-csomag eltávolítása munkamenetből

A függvény használatával detach eltávolíthat egy kódtárat a névtérből. Ezek a kódtárak a lemezen maradnak, amíg újra be nem töltik őket.

# detach a library

detach("package: caesar")

Ha el szeretne távolítani egy munkamenet-hatókörű csomagot egy jegyzetfüzetből, használja a remove.packages() parancsot. Ez a kódtár-módosítás nincs hatással az ugyanazon a fürtön lévő többi munkamenetre. A felhasználók nem távolíthatják el vagy távolíthatják el az alapértelmezett Microsoft Fabric-futtatókörnyezet beépített kódtárait.

Feljegyzés

Nem távolíthat el olyan alapvető csomagokat, mint a SparkR, a SparklyR vagy az R.

remove.packages("caesar")

Munkamenet-hatókörű R-kódtárak és SparkR

A jegyzetfüzet-hatókörű kódtárak a SparkR-feldolgozókban érhetők el.

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)

Munkamenet-hatókörű R-kódtárak és sparklyr

A spark_apply() Sparklyr használatával bármilyen R-csomagot használhat a Sparkban. Alapértelmezés szerint a sparklyr::spark_apply()csomagok argumentuma FAL Standard kiadás értékre van adva. Ez átmásolja az aktuális libPaths-kódtárakat a dolgozóknak, így importálhatja és használhatja őket a dolgozókon. Futtathatja például az alábbi parancsot egy cézár által titkosított üzenet létrehozásához a következővel 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)

További információ az R funkcióiról: