Διαχείριση βιβλιοθηκών Apache Spark στο Microsoft Fabric
Μια βιβλιοθήκη είναι μια συλλογή προκαθορισμένου κώδικα που μπορούν να εισαγάγουν οι προγραμματιστές για να παρέχουν λειτουργικότητα. Με τη χρήση βιβλιοθηκών, μπορείτε να εξοικονομήσετε χρόνο και προσπάθεια, καθώς δεν χρειάζεται να συντάξετε κώδικα από την αρχή για να κάνετε συνήθεις εργασίες. Αντίθετα, εισαγάγετε τη βιβλιοθήκη και χρησιμοποιήστε τις συναρτήσεις και της για να επιτύχετε τις επιθυμητές λειτουργίες. Το Microsoft Fabric παρέχει πολλαπλούς μηχανισμούς για να σας βοηθήσει να διαχειρίζεστε και να χρησιμοποιείτε βιβλιοθήκες.
- Ενσωματωμένες βιβλιοθήκες: Κάθε χρόνος εκτέλεσης Fabric Spark παρέχει ένα πλούσιο σύνολο δημοφιλών προεγκατεστημένων βιβλιοθηκών. Μπορείτε να βρείτε την πλήρη ενσωματωμένη λίστα βιβλιοθήκης στον χρόνο εκτέλεσης Fabric Spark.
- Δημόσιες βιβλιοθήκες: Οι δημόσιες βιβλιοθήκες προέρχονται από αποθετήρια όπως το PyPI και το Conda, τα οποία υποστηρίζονται επί του παρόντος.
- Προσαρμοσμένες βιβλιοθήκες: Οι προσαρμοσμένες βιβλιοθήκες αναφέρονται σε κώδικα που εσείς ή ο οργανισμός σας δημιουργείτε. Το Fabric τις υποστηρίζει σε μορφές .whl, .jar και .tar.gz . Το Fabric υποστηρίζει .tar.gz μόνο για τη γλώσσα R. Για προσαρμοσμένες βιβλιοθήκες Python, χρησιμοποιήστε τη μορφή .whl .
Σύνοψη βέλτιστων πρακτικών διαχείρισης βιβλιοθήκης
Τα παρακάτω σενάρια περιγράφουν βέλτιστες πρακτικές κατά τη χρήση βιβλιοθηκών στο Microsoft Fabric.
Σενάριο 1: Ο διαχειριστής ορίζει προεπιλεγμένες βιβλιοθήκες για τον χώρο εργασίας
Για να ορίσετε προεπιλεγμένες βιβλιοθήκες, πρέπει να είστε ο διαχειριστής του χώρου εργασίας. Ως διαχειριστής, μπορείτε να εκτελέσετε αυτές τις εργασίες:
- Δημιουργία νέου περιβάλλοντος
- Εγκατάσταση των απαιτούμενων βιβλιοθηκών στο περιβάλλον
- Επισύναψη αυτού του περιβάλλοντος ως προεπιλεγμένου χώρου εργασίας
Όταν τα σημειωματάριά σας και οι ορισμοί εργασίας Spark επισυνάπτονται στις ρυθμίσεις χώρου εργασίας, ξεκινούν περιόδους λειτουργίας με τις βιβλιοθήκες εγκατεστημένες στο προεπιλεγμένο περιβάλλον του χώρου εργασίας.
Σενάριο 2: Διατήρηση προδιαγραφών βιβλιοθήκης για ένα ή περισσότερα στοιχεία κώδικα
Εάν έχετε κοινές βιβλιοθήκες για διαφορετικά στοιχεία κώδικα και δεν απαιτείται συχνή ενημέρωση, εγκαταστήστε τις βιβλιοθήκες σε ένα περιβάλλον και επισυνάψτε τις στα στοιχεία κώδικα είναι μια καλή επιλογή.
Θα χρειαστεί λίγος χρόνος για να καταστήσετε τις βιβλιοθήκες σε περιβάλλοντα αποτελεσματικές κατά τη δημοσίευση. Συνήθως χρειάζονται 5-15 λεπτά, ανάλογα με την πολυπλοκότητα των βιβλιοθηκών. Κατά τη διάρκεια αυτής της διαδικασίας, το σύστημα θα σας βοηθήσει να επιλύσετε τις πιθανές διενέξεις και να λάβετε τις απαιτούμενες εξαρτήσεις.
Ένα πλεονέκτημα αυτής της προσέγγισης είναι ότι οι βιβλιοθήκες που έχουν εγκατασταθεί με επιτυχία είναι εγγυημένα διαθέσιμες όταν η περίοδος λειτουργίας Spark ξεκινά με συνημμένο περιβάλλον. Εξοικονομεί προσπάθεια για τη διατήρηση κοινών βιβλιοθηκών για τα έργα σας.
Συνιστάται ιδιαίτερα για σενάρια διοχέτευσης με τη σταθερότητά τους.
Σενάριο 3: Ενσωματωμένη εγκατάσταση σε αλληλεπιδραστική εκτέλεση
Εάν χρησιμοποιείτε σημειωματάρια για να συντάξετε κώδικα αλληλεπιδραστικά, η χρήση ενσωματωμένης εγκατάστασης για την προσθήκη επιπλέον νέων βιβλιοθηκών PyPI/conda ή η επικύρωση των προσαρμοσμένων βιβλιοθηκών σας για εφάπαξ χρήση είναι η βέλτιστη πρακτική. Οι ενσωματωμένες εντολές στο Fabric σάς επιτρέπουν να έχετε τη βιβλιοθήκη που είναι αποτελεσματική στην τρέχουσα περίοδο λειτουργίας Spark του σημειωματάριου. Επιτρέπει τη γρήγορη εγκατάσταση, αλλά η εγκατεστημένη βιβλιοθήκη δεν διατηρείται σε διαφορετικές περιόδους λειτουργίας.
Δεδομένου ότι %pip install
η δημιουργία διαφορετικών δένδρων εξάρτησης κατά διαστήματα μπορεί να έχει ως αποτέλεσμα διενέξεις βιβλιοθήκης, οι ενσωματωμένες εντολές απενεργοποιούνται από προεπιλογή στις εκτελέσεις διοχέτευσης και ΔΕΝ συνιστάται να χρησιμοποιηθούν στις διοχετεύσεις σας.
Σύνοψη υποστηριζόμενων τύπων βιβλιοθήκης
Τύπος βιβλιοθήκης | Διαχείριση βιβλιοθήκης περιβάλλοντος | Ενσωματωμένη εγκατάσταση |
---|---|---|
Python Public (PyPI & Conda) | Υποστηρίζεται | Υποστηρίζεται |
Python Custom (.whl) | Υποστηρίζεται | Υποστηρίζεται |
R Public (CRAN) | Δεν υποστηρίζεται | Υποστηρίζεται |
Προσαρμογή R (.tar.gz) | Υποστηρίζεται ως προσαρμοσμένη βιβλιοθήκη | Υποστηρίζεται |
Γυάλα | Υποστηρίζεται ως προσαρμοσμένη βιβλιοθήκη | Υποστηρίζεται |
Ενσωματωμένη εγκατάσταση
Οι ενσωματωμένες εντολές υποστηρίζουν τη διαχείριση βιβλιοθηκών σε κάθε περίοδο λειτουργίας σημειωματάριου.
Ενσωματωμένη εγκατάσταση Python
Το σύστημα επανεκκινεί τον διερμηνέα Python για να εφαρμόσει την αλλαγή βιβλιοθηκών. Οποιεσδήποτε μεταβλητές έχουν οριστεί πριν εκτελέσετε το κελί εντολών θα χαθούν. Συνιστούμε να τοποθετήσετε όλες τις εντολές για την προσθήκη, τη διαγραφή ή την ενημέρωση πακέτων Python στην αρχή του σημειωματάριού σας.
Οι ενσωματωμένες εντολές για τη διαχείριση βιβλιοθηκών Python είναι απενεργοποιημένες στη διοχέτευση σημειωματάριου που εκτελείται από προεπιλογή. Εάν θέλετε να ενεργοποιήσετε τη %pip install
διοχέτευση, προσθέστε "_inlineInstallationEnabled", καθώς η παράμετρος bool ισούται με True στις παραμέτρους δραστηριότητας σημειωματάριου.
Σημείωμα
Το %pip install
μπορεί να οδηγήσει σε ασυνεπή αποτελέσματα κατά διαστήματα. Συνιστάται η εγκατάσταση της βιβλιοθήκης σε ένα περιβάλλον και η χρήση της στη διοχέτευση.
Στις εκτελέσεις αναφοράς σημειωματάριου, οι ενσωματωμένες εντολές για τη διαχείριση βιβλιοθηκών Python δεν υποστηρίζονται. Για να εξασφαλίσετε την ορθότητα της εκτέλεσης, συνιστάται να καταργήσετε αυτές τις ενσωματωμένες εντολές από το σημειωματάριο στο οποίο γίνεται αναφορά.
Προτείνουμε αντί %pip
για !pip
.
!pip
Το είναι μια ενσωματωμένη εντολή κελύφους IPython, η οποία έχει τους ακόλουθους περιορισμούς:
-
!pip
Εγκαθιστά ένα πακέτο μόνο στον κόμβο προγράμματος οδήγησης, όχι στους κόμβους εκτελέσεων. - Τα πακέτα που εγκαθίστανται μέσω
!pip
δεν επηρεάζουν διενέξεις με ενσωματωμένα πακέτα ή εάν τα πακέτα έχουν ήδη εισαχθεί σε ένα σημειωματάριο.
Ωστόσο, %pip
χειρίζεται αυτά τα σενάρια. Οι βιβλιοθήκες που εγκαθίστανται μέσω %pip
είναι διαθέσιμες σε αμφότερους τους κόμβους προγραμμάτων οδήγησης και εκτελέσεων και εξακολουθούν να είναι αποτελεσματικές ακόμη και η βιβλιοθήκη έχει ήδη εισαχθεί.
Φιλοδώρημα
Η %conda install
εντολή συνήθως απαιτεί περισσότερο χρόνο από την εντολή για την %pip install
εγκατάσταση νέων βιβλιοθηκών Python. Ελέγχει τις πλήρεις εξαρτήσεις και επιλύει διενέξεις.
Μπορεί να θέλετε να χρησιμοποιήσετε %conda install
το για μεγαλύτερη αξιοπιστία και σταθερότητα. Μπορείτε να χρησιμοποιήσετε %pip install
το εάν είστε βέβαιοι ότι η βιβλιοθήκη που θέλετε να εγκαταστήσετε δεν έρχεται σε διένεξη με τις προεγκατεστημένες βιβλιοθήκες στο περιβάλλον περιβάλλοντος εκτέλεσης.
Για όλες τις διαθέσιμες ενσωματωμένες εντολές και διευκρινίσεις Python, ανατρέξτε στο θέμα Εντολές %pip και εντολές %conda.
Διαχείριση δημόσιων βιβλιοθηκών Python μέσω ενσωματωμένων εγκαταστάσεων
Σε αυτό το παράδειγμα, δείτε πώς μπορείτε να χρησιμοποιήσετε ενσωματωμένες εντολές για τη διαχείριση βιβλιοθηκών. Ας υποθέσουμε ότι θέλετε να χρησιμοποιήσετε το altair, μια ισχυρή βιβλιοθήκη απεικονίσεων για python, για μια εφάπαξ εξερεύνηση δεδομένων. Ας υποθέσουμε ότι η βιβλιοθήκη δεν είναι εγκατεστημένη στον χώρο εργασίας σας. Το παρακάτω παράδειγμα χρησιμοποιεί εντολές conda για να απεικονίσει τα βήματα.
Μπορείτε να χρησιμοποιήσετε ενσωματωμένες εντολές για να ενεργοποιήσετε την ιδιότητα altair στην περίοδο λειτουργίας σημειωματάριου, χωρίς να επηρεάζονται άλλες περίοδοι λειτουργίας του σημειωματάριου ή άλλων στοιχείων.
Εκτελέστε τις ακόλουθες εντολές σε ένα κελί κώδικα σημειωματάριου. Η πρώτη εντολή εγκαθιστά τη βιβλιοθήκη altair . Επίσης, εγκαταστήστε vega_datasets, το οποίο περιέχει ένα σημασιολογικό μοντέλο που μπορείτε να χρησιμοποιήσετε για να απεικονίσετε.
%conda install altair # install latest version through conda command %conda install vega_datasets # install latest version through conda command
Η έξοδος του κελιού υποδεικνύει το αποτέλεσμα της εγκατάστασης.
Εισαγάγετε το πακέτο και το μοντέλο σημασιολογίας εκτελώντας τον ακόλουθο κώδικα σε ένα άλλο κελί σημειωματάριου.
import altair as alt from vega_datasets import data
Τώρα μπορείτε να πειραματιστείτε με τη βιβλιοθήκη altair εμβέλειας περιόδου λειτουργίας.
# 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()
Διαχείριση προσαρμοσμένων βιβλιοθηκών Python μέσω ενσωματωμένων εγκαταστάσεων
Μπορείτε να αποστείλετε τις προσαρμοσμένες βιβλιοθήκες σας Python στον φάκελο πόρων του σημειωματάριού σας ή στο συνημμένο περιβάλλον. Οι φάκελοι πόρων είναι το ενσωματωμένο σύστημα αρχείων που παρέχεται από κάθε σημειωματάριο και περιβάλλοντα. Ανατρέξτε στο θέμα Πόροι σημειωματάριου για περισσότερες λεπτομέρειες. Μετά την αποστολή, μπορείτε να σύρετε και αποθέσετε την προσαρμοσμένη βιβλιοθήκη σε ένα κελί κώδικα και η ενσωματωμένη εντολή εγκατάστασης της βιβλιοθήκης δημιουργείται αυτόματα. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να εγκαταστήσετε.
# install the .whl through pip command from the notebook built-in folder
%pip install "builtin/wheel_file_name.whl"
Ενσωματωμένη εγκατάσταση R
Για να διαχειριστείτε βιβλιοθήκες R, το Fabric υποστηρίζει τις install.packages()
εντολές , remove.packages()
και devtools::
. Για όλες τις διαθέσιμες ενσωματωμένες εντολές και διευκρινίσεις R, ανατρέξτε στην εντολή install.packages και εντολή remove.package.
Διαχείριση δημόσιων βιβλιοθηκών R μέσω ενσωματωμένων εγκαταστάσεων
Ακολουθήστε αυτό το παράδειγμα για να δείτε τα βήματα εγκατάστασης μιας δημόσιας βιβλιοθήκης R.
Για να εγκαταστήσετε μια βιβλιοθήκη τροφοδοσίας R:
Αλλάξτε τη γλώσσα εργασίας σε SparkR (R) στην κορδέλα σημειωματάριου.
Εγκαταστήστε τη βιβλιοθήκη του caesar εκτελώντας την ακόλουθη εντολή σε ένα σημειωματάριο.
install.packages("caesar")
Τώρα μπορείτε να πειραματιστείτε με τη βιβλιοθήκη caesar με εμβέλεια συνεδρίας με μια δουλειά Spark.
library(SparkR) sparkR.session() hello <- function(x) { library(caesar) caesar(x) } spark.lapply(c("hello world", "good morning", "good evening"), hello)
Διαχείριση βιβλιοθηκών βάζων μέσω ενσωματωμένων εγκαταστάσεων
Τα αρχεία .jar υποστηρίζουν σε περιόδους λειτουργίας σημειωματάριου με την ακόλουθη εντολή.
%%configure -f
{
"conf": {
"spark.jars": "abfss://<<Lakehouse prefix>>.dfs.fabric.microsoft.com/<<path to JAR file>>/<<JAR file name>>.jar",
}
}
Το κελί κώδικα χρησιμοποιεί τον χώρο αποθήκευσης του Lakehouse ως παράδειγμα. Στην εξερεύνηση σημειωματάριων, μπορείτε να αντιγράψετε τη διαδρομή ABFS του πλήρους αρχείου και να την αντικαταστήσετε στον κώδικα.