Udostępnij za pośrednictwem


Samouczek— część 1. Pozyskiwanie danych do usługi Microsoft Fabric Lakehouse przy użyciu platformy Apache Spark

W tym samouczku pozyskujesz dane w usłudze Fabric lakehouse w formacie delta lake. Niektóre ważne terminy, które należy zrozumieć:

  • Lakehouse — usługa Lakehouse to kolekcja plików/folderów/tabel reprezentujących bazę danych w usłudze Data Lake używanej przez aparat Spark i aparat SQL do przetwarzania danych big data, która obejmuje rozszerzone możliwości transakcji ACID podczas korzystania z tabel sformatowanych przez funkcję delta typu open source.

  • Delta Lake — usługa Delta Lake to warstwa magazynu typu open source, która zapewnia transakcje ACID, skalowalne zarządzanie metadanymi oraz przetwarzanie danych wsadowych i przesyłanych strumieniowo do platformy Apache Spark. Tabela usługi Delta Lake to format tabeli danych, który rozszerza pliki danych Parquet przy użyciu dziennika transakcji opartego na plikach na potrzeby transakcji ACID i skalowalnego zarządzania metadanymi.

  • Zestawy danych Platformy Azure Open to wyselekcjonowane publiczne zestawy danych, których można użyć do dodawania funkcji specyficznych dla scenariuszy do rozwiązań uczenia maszynowego w celu uzyskania bardziej dokładnych modeli. Otwarte zestawy danych znajdują się w chmurze w usłudze Microsoft Azure Storage i mogą być dostępne za pomocą różnych metod, takich jak Apache Spark, interfejs API REST, fabryka danych i inne narzędzia.

W tym samouczku użyjesz platformy Apache Spark do:

  • Odczytywanie danych z kontenerów usługi Azure Open Datasets.
  • Zapisywanie danych w tabeli delty usługi Fabric lakehouse.

Wymagania wstępne

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

  • Zaloguj się do usługi Microsoft Fabric.

  • Użyj przełącznika środowiska po lewej stronie głównej, aby przełączyć się na środowisko usługi Synapse Nauka o danych.

    Screenshot of the experience switcher menu, showing where to select Data Science.

  • Dodaj magazyn lakehouse do tego notesu. Będziesz pobierać dane z publicznego obiektu blob, a następnie przechowywać dane w magazynie lakehouse.

Postępuj zgodnie z instrukcjami w notesie

1-ingest-data.ipynb to notes, który towarzyszy temu samouczkowi.

Aby otworzyć towarzyszący notes na potrzeby tego samouczka, postępuj zgodnie z instrukcjami w temacie Przygotowywanie systemu do celów nauki o danych, aby zaimportować notes do obszaru roboczego.

Jeśli wolisz skopiować i wkleić kod z tej strony, możesz utworzyć nowy notes.

Przed rozpoczęciem uruchamiania kodu pamiętaj, aby dołączyć usługę Lakehouse do notesu .

Dane współczynnika zmian bankowych

Zestaw danych zawiera stan zmian 10 000 klientów. Zawiera również atrybuty, które mogą mieć wpływ na współczynnik zmian, na przykład:

  • Ocena kredytowa
  • Lokalizacja geograficzna (Niemcy, Francja, Hiszpania)
  • Płeć (mężczyzna, kobieta)
  • Wiek
  • Kadencja (lata bycia klientem banku)
  • Saldo konta
  • Szacowane wynagrodzenie
  • Liczba produktów zakupionych przez klienta za pośrednictwem banku
  • Stan karty kredytowej (czy klient ma kartę kredytową, czy nie)
  • Stan aktywnego członka (bez względu na to, czy klient banku aktywnego)

Zestaw danych zawiera również kolumny, takie jak numer wiersza, identyfikator klienta i nazwisko klienta, które nie powinny mieć wpływu na decyzję klienta o opuszczeniu banku.

Zdarzenie, które definiuje współczynnik zmian klienta, to zamknięcie konta bankowego klienta. Kolumna exited w zestawie danych odnosi się do porzucenia klienta. Nie ma zbyt dużego kontekstu dostępnego dla tych atrybutów, więc musisz kontynuować bez posiadania podstawowych informacji o zestawie danych. Celem jest zrozumienie, w jaki sposób te atrybuty przyczyniają się do exited stanu.

Przykładowe wiersze z zestawu danych:

"CustomerID" "Nazwisko" "CreditScore" "Geografia" "Płeć" "Wiek" "Czas użytkowania" "Saldo" "NumOfProducts" "HasCrCard" "IsActiveMember" "EstimatedSalary" "Zakończono"
15634602 Hargrave 619 Francja Kobieta 42 2 0,00 1 1 1 101348.88 1
15647311 Hill 608 Hiszpania Kobieta 41 1 83807.86 1 0 1 112542.58 0

Pobieranie zestawu danych i przekazywanie do usługi Lakehouse

Napiwek

Definiując następujące parametry, możesz łatwo użyć tego notesu z różnymi zestawami danych.

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

Ten kod pobiera publicznie dostępną wersję zestawu danych, a następnie przechowuje go w lakehouse usługi Fabric.

Ważne

Przed uruchomieniem tego notesu upewnij się, że dodasz magazyn lakehouse . Niepowodzenie w tym celu spowoduje wystąpienie błędu.

import os, requests
if not IS_CUSTOM_DATA:
# Download demo data files into lakehouse if not exist
    remote_url = "https://synapseaisolutionsa.blob.core.windows.net/public/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.")

Użyjesz właśnie pozyskanych danych w: