Apache Spark-kódtárak kezelése a Microsoft Fabricben

A kódtárak olyan előre írt kódgyűjtemények, amelyeket a fejlesztők importálhatnak a funkciók biztosításához. A kódtárak használatával időt és energiát takaríthat meg azzal, hogy nem kell nulláról írnia a kódot a gyakori feladatok elvégzéséhez. Ehelyett importálja a kódtárat, és használja annak funkcióit és osztályait a kívánt funkciók eléréséhez. A Microsoft Fabric több mechanizmussal segíti a kódtárak kezelését és használatát.

  • Beépített kódtárak: Minden Fabric Spark-futtatókörnyezet számos népszerű előre telepített kódtárat biztosít. A teljes beépített kódtárlista megtalálható a Fabric Spark Runtime-ban.
  • Nyilvános kódtárak: A nyilvános kódtárak olyan adattárakból származnak, mint a PyPI és a Conda, amelyek jelenleg támogatottak.
  • Egyéni kódtárak: Az egyéni kódtárak az Ön vagy a szervezet által buildelt kódra vonatkoznak. A Fabric .whl, .jar és .tar.gz formátumban támogatja őket. A Fabric csak az R nyelvhez támogatja a .tar.gz . Egyéni Python-kódtárak esetén használja a .whl formátumot.

Erőforrástár-kezelés a munkaterület beállításában

Fontos

A munkaterület beállításainál már nem támogatott az erőforrástár-kezelés. A munkaterület-kódtárak és a Spark-tulajdonságok alapértelmezett környezetbe való migrálásával kapcsolatban lásd : Munkaterület-kódtárak és Spark-tulajdonságok migrálása.

A könyvtárkezelés ajánlott eljárásainak összefoglalása

Az alábbi forgatókönyvek az ajánlott eljárásokat ismertetik.

1. forgatókönyv: Rendszergazda beállítja a munkaterület alapértelmezett kódtárait

Az alapértelmezett kódtárak beállításához a munkaterület rendszergazdájának kell lennie. Rendszergazdaként a következő feladatokat hajthatja végre:

  1. Új környezet létrehozása
  2. A szükséges kódtárak telepítése a környezetben
  3. A környezet csatolása alapértelmezett munkaterületként

A munkaterület jegyzetfüzetei és Spark-feladatdefiníciói a Munkaterület beállításaihoz vannak csatolva. A munkameneteket a munkaterület alapértelmezett környezetében telepített kódtárakkal indítják el.

2. forgatókönyv: Egy vagy több kódelem kódtár-specifikációinak megőrzése

Ha meg szeretné őrizni a kódtár specifikációit, telepítse a kódtárakat egy környezetben, és csatolja a kódelemekhez.

Ennek a megközelítésnek az egyik előnye, hogy megtakarítja a közös kódtárakat igénylő kód futtatását. Miután sikeresen telepítette a környezetet, a kódtárak minden Spark-munkamenetben hatékonyak lesznek, ha a környezet csatlakoztatva van.

Egy másik előnye, hogy a megközelítés támogatja a tár konfigurációjának részletességét a munkaterület szintjénál alacsonyabb szinten. Egy környezet több kódösszetevőhöz is csatolható. Ha egy olyan munkaterületen található jegyzetfüzetek vagy Spark-feladatdefiníciók egy részhalmaza, amely ugyanazokat a kódtárakat igényli, csatolja őket ugyanahhoz a környezethez. A munkaterület rendszergazdája, tagja vagy közreműködője létrehozhatja, szerkesztheti és csatolhatja a környezetet.

3. forgatókönyv: Beágyazott telepítés interaktív futtatáskor

Ha érdekli a nem telepített tárak egyszeri használata egy interaktív jegyzetfüzetben, a beágyazott telepítés a legkényelmesebb megoldás. A Háló beágyazott parancsai lehetővé teszik, hogy a kódtár érvényes legyen az aktuális jegyzetfüzet Spark-munkamenetében. A tár nem marad fenn a különböző munkamenetekben.

A jegyzetfüzet futtatásához engedéllyel rendelkező felhasználók más kódtárakat is telepíthetnek a Spark-munkamenetben.

A támogatott kódtártípusok összegzése

Kódtár típusa Környezeti kódtár kezelése Beágyazott telepítés
Python nyilvános (PyPI > Conda) Támogatott Támogatott
Python Custom (.whl) Támogatott Támogatott
R Nyilvános (CRAN) Nem támogatott Támogatott
Egyéni R (.tar.gz) Támogatott Támogatott
Jar Egyéni kódtárként támogatott Nem támogatott

Fontos

A .jar kódtárra jelenleg korlátozások vonatkoznak.

  • A Scala-felhasználók számára a .jar fájl sikeresen telepíthető egy környezetben, de a Spark-/Scala-munkamenetek esetében nem hatékony. A telepítés felülírja a beépített tárat egy másik tárral. Az új .jar a munkamenetekben működik.
  • Python-felhasználók esetében az összes .jar fájl jelenleg nem támogatott egy környezetben. A telepítés sikeres lehet egy környezetben, de a PySpark-munkamenetekben nem hatékonyak.
  • A .jar fájlokat a jegyzetfüzet munkamenet szintjén telepítheti.

Beágyazott telepítés

A beágyazott parancsok támogatják a Python-kódtárakat és az R-kódtárakat.

Python beágyazott telepítése

A Python-értelmező újraindul a kódtárak módosításának alkalmazásához. A parancscella futtatása előtt definiált változók elvesznek. Határozottan javasoljuk, hogy a jegyzetfüzet elején helyezze el a Python-csomagok hozzáadására, törlésére vagy frissítésére szolgáló összes parancsot.

A Python-kódtárak kezelésére szolgáló beágyazott parancsok alapértelmezés szerint le vannak tiltva a jegyzetfüzet-folyamatban. Ha engedélyezni %pip install szeretné a folyamatot, adja hozzá a "_inlineInstallationEnabled" értéket, mivel a bool paraméter értéke True (Igaz) a jegyzetfüzet tevékenységparamétereiben.

Képernyőkép a pipek notebook-folyamat futtatásához való engedélyezésének konfigurációjáról.

Feljegyzés

Ez %pip install időről időre inkonzisztens eredményekhez vezethet. Javasoljuk, hogy telepítse a kódtárat egy környezetben, és használja azt a folyamatban.

Javasoljuk ahelyett, hogy %pip!pip. !pip egy beépített IPython-parancs, amely a következő korlátozásokkal rendelkezik:

  • !pip csak az illesztőprogram-csomópontra telepíti a csomagot, a végrehajtó csomópontokra nem.
  • Az áttelepített !pip csomagok nem befolyásolják a beépített csomagokkal való ütközéseket, illetve azt, hogy a csomagok már importálva vannak-e egy jegyzetfüzetbe.

Ezeket a %pip forgatókönyveket azonban kezeli. Az áttelepített %pip kódtárak az illesztőprogramok és a végrehajtó csomópontokon is elérhetők, és még a tár importálása is hatékony.

Tipp.

A %conda install parancs általában hosszabb időt vesz igénybe, mint az %pip install új Python-kódtárak telepítése. Ellenőrzi a teljes függőségeket, és feloldja az ütközéseket.

Érdemes lehet nagyobb megbízhatóságot és stabilitást használni %conda install . Akkor használhatja %pip install , ha biztos benne, hogy a telepíteni kívánt tár nem ütközik az előre telepített kódtárakkal a futtatókörnyezetben.

Az összes elérhető Python-beágyazott parancsot és pontosítást lásd: %pip parancsok és %conda parancsok.

Python nyilvános kódtárak kezelése beágyazott telepítéssel

Ebben a példában megtudhatja, hogyan használhat beágyazott parancsokat a kódtárak kezeléséhez. Tegyük fel, hogy az Altairt, a Python hatékony vizualizációs kódtárát szeretné használni egy egyszeri adatfeltáráshoz. Tegyük fel, hogy a tár nincs telepítve a munkaterületen. Az alábbi példa conda-parancsokkal szemlélteti a lépéseket.

Beágyazott parancsokkal engedélyezheti az Altairt a jegyzetfüzet-munkamenetben anélkül, hogy ez hatással van a jegyzetfüzet más munkameneteire vagy más elemekre.

  1. Futtassa a következő parancsokat egy jegyzetfüzet kódcellájában. Az első parancs telepíti az altair könyvtárat. Telepítse a vega_datasets is, amely egy vizualizációhoz használható szemantikai modellt tartalmaz.

    %conda install altair          # install latest version through conda command
    %conda install vega_datasets   # install latest version through conda command
    

    A cella kimenete a telepítés eredményét jelzi.

  2. Importálja a csomagot és a szemantikai modellt úgy, hogy az alábbi kódot egy másik jegyzetfüzetcellában futtatja.

    import altair as alt
    from vega_datasets import data
    
  3. Most már játszhat a munkamenet-hatókörű Altair-kódtárral .

    # load a simple dataset as a pandas DataFrame
    cars = data.cars()
    alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
    ).interactive()
    

Egyéni Python-kódtárak kezelése beágyazott telepítéssel

Az egyéni Python-kódtárakat feltöltheti a jegyzetfüzethez csatolt lakehouse Fájl mappájába. Nyissa meg a tóházat, válassza a Fájl mappa ... ikonját, és töltse fel az egyéni tárat.

A feltöltés után az alábbi paranccsal telepítse az egyéni tárat a jegyzetfüzet-munkamenetbe.

# install the .whl through pip command
%pip install /lakehouse/default/Files/wheel_file_name.whl             

R beágyazott telepítése

Az R-kódtárak kezeléséhez a Fabric támogatja a , remove.packages()és devtools:: parancsokatinstall.packages(). Az összes elérhető R beágyazott parancsot és pontosítást lásd: install.packages parancs és remove.package parancs.

R nyilvános kódtárak kezelése beágyazott telepítéssel

Kövesse ezt a példát az R nyilvános kódtár telepítésének lépéseinek végigjárásához.

R-hírcsatorna-kódtár telepítése:

  1. Váltson a munkanyelvre a jegyzetfüzet menüszalagjának SparkR (R) nyelvére.

  2. Telepítse a caesar könyvtárat az alábbi parancs futtatásával egy jegyzetfüzetcellában.

    install.packages("caesar")
    
  3. Most egy Spark-feladattal játszhat a munkamenet-hatókörű caesar-kódtárral .

    library(SparkR)
    sparkR.session()
    
    hello <- function(x) {
    library(caesar)
    caesar(x)
    }
    spark.lapply(c("hello world", "good morning", "good evening"), hello)
    

Jar-kódtárak kezelése beágyazott telepítéssel

A .jar fájlok a következő paranccsal támogatottak a jegyzetfüzet-munkamenetekben.

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
    }
}        

A kódcella a Lakehouse-tárolót használja példaként. A jegyzetfüzet-kezelőben másolhatja a teljes fájl ABFS-elérési útját, és lecserélheti a kódot. Képernyőkép az ABFS elérési útjának lekéréséről.