Samouczek, część 1. Używanie platformy Apache Spark do pozyskiwania danych do usługi Microsoft Fabric lakehouse

W tym samouczku dane są pobierane do Fabric lakehouses w formacie Delta Lake. Tutaj definiujemy kilka ważnych terminów:

  • Lakehouse — lakehouse to kolekcja plików, folderów i / lub tabel reprezentujących bazę danych w usłudze Data Lake. Silnik Spark i silnik SQL używają zasobów "lakehouse" do przetwarzania big data. W przypadku korzystania z tabel w formacie delta typu open source przetwarzanie obejmuje rozszerzone możliwości transakcji ACID.

  • 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. Jako format tabeli danych usługa Delta Lake rozszerza pliki danych Parquet za pomocą dziennika transakcji opartego na plikach na potrzeby transakcji ACID i skalowalnego zarządzania metadanymi.

  • Azure Open Datasets są wyselekcjonowane publiczne zestawy danych, które dodają funkcje specyficzne dla scenariusza do rozwiązań uczenia maszynowego. Prowadzi to do bardziej dokładnych modeli. Otwarte zestawy danych to zasoby w chmurze, które znajdują się w witrynie Microsoft Azure Storage. Platforma Apache Spark, interfejs API REST, fabryka danych i inne narzędzia mogą uzyskiwać dostęp do otwartych zestawów danych.

W tym samouczku użyjesz platformy Apache Spark do:

  • Odczytywanie danych z kontenerów Azure Open Datasets.
  • Zapisz dane w tabeli delty usługi Fabric Lakehouse.

Warunki wstępne

  • Dodaj lakehouse do tego notesu. W tym samouczku najpierw pobierzesz dane z publicznego zbioru danych. Następnie dane są przechowywane w tej zasobie typu lakehouse.

Uwaga / Notatka

Przed rozpoczęciem upewnij się, że wykonasz kroki przygotowania systemu: utwórz przestrzeń roboczą, utwórz lakehouse i dołącz go do swojego notesu. Przykładowe dane używane w tym samouczku pochodzą z kontenera publicznego Azure Open Datasets i są uzyskiwane programowo w kodzie notesu.

Notuj na bieżąco w notesie

Notatnik 1-ingest-data.ipynb towarzyszy temu samouczkowi.

Wskazówka

Ten samouczek odczytuje przykładowe dane z kontenera Azure Open Datasets. Jeśli podczas ładowania danych wystąpi błąd dostępu, możesz ręcznie pobrać plik churn.csv z repozytorium GitHub fabric-samples i załadować go do Lakehouse.

Dane dotyczące odpływu klientów banku

Zestaw danych zawiera informacje o stanie odejścia klientów dla 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 (liczba lat, w których klient był klientem w tym banku)
  • Saldo konta
  • Szacowane wynagrodzenie
  • Liczba produktów zakupionych przez klienta za pośrednictwem banku
  • Stan karty kredytowej (niezależnie od tego, czy klient ma kartę kredytową)
  • Stan aktywnego członka (bez względu na to, czy klient ma aktywny stan klienta bankowego)

Zestaw danych zawiera również następujące kolumny:

  • numer wiersza
  • identyfikator klienta
  • nazwisko klienta

Te kolumny nie powinny mieć wpływu na decyzję klienta o opuszczeniu banku.

Zamknięcie konta bankowego klienta oznacza utratę tego klienta. Kolumna zestawu danych exited odnosi się do porzucenia klienta. Dostępny jest niewielki kontekst dotyczący tych atrybutów, więc musisz kontynuować bez informacji podstawowych dotyczących zestawu danych. Naszym celem jest zrozumienie, w jaki sposób te atrybuty przyczyniają się do exited stanu.

Przykładowe wiersze 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

Podczas definiowania następujących parametrów można ł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

Poniższy fragment kodu pobiera publicznie dostępną wersję zestawu danych, a następnie przechowuje ten zasób w Fabric lakehouse:

Ważny

Upewnij się, że dodasz lakehouse do notatnika przed jego uruchomieniem. Niepowodzenie w tym celu powoduje 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.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.")

Wykorzystujesz dane, które właśnie pozyskałeś: