Samouczek— część 1. Pozyskiwanie danych do usługi Microsoft Fabric Lakehouse przy użyciu platformy Apache Spark
W tym samouczku będziesz importować dane do lakehouse'ów Fabric w formacie Delta Lake. Niektóre ważne terminy, które należy zrozumieć:
Lakehouse — Lakehouse to kolekcja plików/folderów/tabel, które reprezentują bazę danych nad jeziorem danych, używaną przez silnik Spark i silnik SQL do przetwarzania dużych zbiorów danych, i która obejmuje rozszerzone możliwości transakcji ACID podczas korzystania z tabel w formacie open-source Delta.
Delta Lake — 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 dla Apache Spark. Tabela Delta Lake to format tabeli danych, który rozszerza pliki danych Parquet poprzez transakcyjny dziennik oparty na plikach, obsługujący transakcje ACID i skalowalne zarządzanie metadanymi.
azure Open Datasets to wyselekcjonowane publiczne zestawy danych, których można użyć do dodawania funkcji specyficznych dla scenariusza 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.
- Zapisz dane w tabeli delta w lakehouse Fabric.
Warunki wstępne
Pobierz subskrypcję usługi Microsoft Fabric . Możesz też utworzyć bezpłatne konto wersji próbnej usługi Microsoft Fabric.
Zaloguj się do usługi Microsoft Fabric.
Użyj przełącznika środowiska w lewej dolnej części strony głównej, aby przełączyć się na Fabric.
- Dodaj lakehouse do tego notesu. Będziesz pobierać dane z publicznego obiektu blob, a następnie przechowywać je w magazynie typu lakehouse.
Postępuj zgodnie z instrukcjami w notesie
1-ingest-data.ipynb to notatnik, który towarzyszy temu samouczkowi.
Aby otworzyć towarzyszący notes na potrzeby tego samouczka, postępuj zgodnie z instrukcjami w Prepare your system for data science tutorials (Przygotowywanie systemu do 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 upewnij się, że dołączyłeś lakehouse do notebooka.
Dane dotyczące odpływu klientów banku
Zestaw danych zawiera stan rezygnacji 10 000 klientów. Obejmuje także atrybuty, które mogą mieć wpływ na rotację klientów, 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 jest aktywnym klientem banku, czy nie)
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 określa odejście 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 stanu exited
.
Przykładowe wiersze z zestawu danych:
"CustomerID" | "Nazwisko" | Ocena kredytowa | "Geografia" | "Płeć" | "Wiek" | "Czas użytkowania" | "Saldo" | LiczbaProduktów | "HasCrCard" | CzyCzłonekAktywny | Szacowana pensja | "Zakończono" |
---|---|---|---|---|---|---|---|---|---|---|---|---|
15634602 | Hargrave | 619 | Francja | Kobieta | 42 | 2 | 0.00 | 1 | 1 | 1 | 101348.88 | 1 |
15647311 | Wzgórze | 608 | Hiszpania | Kobieta | 41 | 1 | 83807.86 | 1 | 0 | 1 | 112542.58 | 0 |
Pobieranie zestawu danych i przekazywanie do usługi Lakehouse
Wskazówka
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 Fabric lakehouse.
Ważny
Upewnij się, że dodałeś lakehouse do notesu przed uruchomieniem. 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.")
Powiązana zawartość
Użyjesz właśnie pozyskanych danych w: