Κοινοποίηση μέσω


Εκπαιδευτικό βοήθημα, Μέρος 1: Χρήση του Apache Spark για την πρόσληψη δεδομένων σε μια λίμνη Microsoft Fabric

Αυτό το εκπαιδευτικό βοήθημα καταπίνει δεδομένα σε lakehouses Fabric σε μορφή λίμνης δέλτα. Ορίζουμε ορισμένους σημαντικούς όρους εδώ:

  • Lakehouse - Ένα lakehouse είναι μια συλλογή από αρχεία, φακέλους ή / και πίνακες που αντιπροσωπεύουν μια βάση δεδομένων πάνω από μια λίμνη δεδομένων. Ο μηχανισμός Spark και ο μηχανισμός SQL χρησιμοποιούν πόρους lakehouse για επεξεργασία μεγάλου όγκου δεδομένων. Όταν χρησιμοποιείτε πίνακες μορφοποίησης Δέλτα ανοιχτού κώδικα, αυτή η επεξεργασία περιλαμβάνει βελτιωμένες δυνατότητες συναλλαγών ACID.

  • Delta Lake - Το Delta Lake είναι ένα επίπεδο αποθήκευσης ανοιχτού κώδικα που φέρνει συναλλαγές ACID, διαχείριση μετα-δεδομένων με δυνατότητα κλιμάκωσης και επεξεργασία δεδομένων δέσμης και ροής στο Apache Spark. Ως μορφή πίνακα δεδομένων, η Delta Lake επεκτείνει τα αρχεία δεδομένων Parquet με ένα αρχείο καταγραφής συναλλαγών για συναλλαγές ACID και διαχείριση μετα-δεδομένων με δυνατότητα κλιμάκωσης.

  • Τα Ανοιχτά σύνολα δεδομένων Azure είναι επιμελημένα δημόσια σύνολα δεδομένων που προσθέτουν δυνατότητες για συγκεκριμένα σενάρια σε λύσεις εκμάθησης μηχανής. Αυτό οδηγεί σε πιο ακριβή μοντέλα. Τα Ανοιχτά σύνολα δεδομένων είναι πόροι cloud που βρίσκονται στον Χώρο αποθήκευσης Microsoft Azure. Το Apache Spark, το API REST, το data factory και άλλα εργαλεία μπορούν να έχουν πρόσβαση σε ανοιχτά σύνολα δεδομένων.

Σε αυτή την εκμάθηση, μπορείτε να χρησιμοποιήσετε το Apache Spark για να κάνετε τα εξής:

  • Διαβάστε δεδομένα από κοντέινερ Azure Open Datasets.
  • Γράψτε δεδομένα σε έναν πίνακα δέλτα σε μια λίμνη Fabric.

Προϋποθέσεις

  • Λάβετε μια συνδρομής Microsoft Fabric . Εναλλακτικά, εγγραφείτε για μια δωρεάν δοκιμαστική έκδοση του Microsoft Fabric.

  • Εισέλθετε στο Microsoft Fabric.

  • Μεταβείτε στο Fabric χρησιμοποιώντας την εναλλαγή εμπειριών στην κάτω αριστερή πλευρά της αρχικής σελίδας σας.

    Στιγμιότυπο οθόνης που εμφανίζει την επιλογή του Fabric στο μενού εναλλαγής εμπειριών.

  • Προσθέστε μια λίμνη σε αυτό το σημειωματάριο. Σε αυτή την εκμάθηση, κάνετε πρώτα λήψη δεδομένων από ένα δημόσιο αντικείμενο blob. Στη συνέχεια, τα δεδομένα αποθηκεύονται σε αυτόν τον πόρο lakehouse.

Παρακολούθηση σε σημειωματάριο

Το σημειωματάριο 1-πρόσληψης-data.ipynb συνοδεύει αυτό το πρόγραμμα εκμάθησης.

Δεδομένα απώλειας τραπεζών

Το σύνολο δεδομένων περιέχει πληροφορίες κατάστασης απώλειας για 10.000 πελάτες. Περιλαμβάνει επίσης χαρακτηριστικά που θα μπορούσαν να επηρεάσουν την απώλεια - για παράδειγμα:

  • Πιστωτικό αποτέλεσμα
  • Γεωγραφική θέση (Γερμανία, Γαλλία, Ισπανία)
  • Φύλο (άνδρας, γυναίκα)
  • Ηλικία
  • Διάρκεια (ο αριθμός των ετών που ο πελάτης ήταν πελάτης στη συγκεκριμένη τράπεζα)
  • Υπόλοιπο λογαριασμού
  • Εκτιμώμενος μισθός
  • Ο αριθμός των προϊόντων που αγόρασε ένας πελάτης μέσω της τράπεζας
  • Κατάσταση πιστωτικής κάρτας (είτε ένας πελάτης διαθέτει πιστωτική κάρτα είτε όχι)
  • Κατάσταση ενεργού μέλους (εάν ο πελάτης έχει ενεργή κατάσταση πελάτη τράπεζας)

Το σύνολο δεδομένων περιλαμβάνει επίσης αυτές τις στήλες:

  • αριθμός γραμμής
  • αναγνωριστικό πελάτη
  • επώνυμο πελάτη

Αυτές οι στήλες δεν θα πρέπει να επηρεάζουν την απόφαση ενός πελάτη να αποχωρήσει από την τράπεζα.

Το κλείσιμο ενός τραπεζικού λογαριασμού πελάτη καθορίζει την απώλεια αυτού του πελάτη. Η στήλη συνόλου exited δεδομένων αναφέρεται στην εγκατάλειψη του πελάτη. Υπάρχει διαθέσιμο λίγο περιβάλλον σχετικά με αυτά τα χαρακτηριστικά, επομένως πρέπει να συνεχίσετε χωρίς πληροφορίες παρασκηνίου σχετικά με το σύνολο δεδομένων. Στόχος μας είναι να κατανοήσουμε τον τρόπο με τον οποίο αυτά τα χαρακτηριστικά συμβάλλουν στην exited κατάσταση.

Δείγμα γραμμών συνόλου δεδομένων:

"CustomerID" "Surname" "CreditScore" "Γεωγραφία" "Φύλο" "Ηλικία" "Διάρκεια" "Υπόλοιπο" "NumOfProducts" "HasCrCard" "IsActiveMember" "Εκτιμώμενηalary" "Εξοδος"
15634602 Χάργκρεϊβ 619 Γαλλία Θηλυκός 42 2 0.00 1 1 1 101348.88 1
15647311 Λόφος 608 Ισπανία Θηλυκός 41 1 83807.86 1 0 1 112542.58 0

Λήψη συνόλου δεδομένων και αποστολή στο Lakehouse

Φιλοδώρημα

Όταν ορίζετε τις ακόλουθες παραμέτρους, μπορείτε εύκολα να χρησιμοποιήσετε αυτό το σημειωματάριο με διαφορετικά σύνολα δεδομένων:

IS_CUSTOM_DATA = False  # if TRUE, dataset has to be uploaded manually

DATA_ROOT = "/lakehouse/default"
DATA_FOLDER = "Files/churn"  # folder with data files
DATA_FILE = "churn.csv"  # data file name

Το ακόλουθο τμήμα κώδικα κάνει λήψη μιας δημόσια διαθέσιμης έκδοσης του συνόλου δεδομένων και, στη συνέχεια, αποθηκεύει αυτόν τον πόρο σε μια λίμνη Fabric:

Σημαντικός

Βεβαιωθείτε ότι έχετε προσθέσει ένα lakehouse στο σημειωματάριο προτού το εκτελέσετε. Εάν δεν το κάνετε αυτό, εμφανίζεται σφάλμα.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.z13.web.core.windows.net/data/bankcustomerchurn"
    file_list = [DATA_FILE]
    download_path = f"{DATA_ROOT}/{DATA_FOLDER}/raw"

    if not os.path.exists("/lakehouse/default"):
        raise FileNotFoundError(
            "Default lakehouse not found, please add a lakehouse and restart the session."
        )
    os.makedirs(download_path, exist_ok=True)
    for fname in file_list:
        if not os.path.exists(f"{download_path}/{fname}"):
            r = requests.get(f"{remote_url}/{fname}", timeout=30)
            with open(f"{download_path}/{fname}", "wb") as f:
                f.write(r.content)
    print("Downloaded demo data files into lakehouse.")

Χρησιμοποιείτε τα δεδομένα στα οποία μόλις προσλάβετε: