Руководство, часть 1. Прием данных в озеро Microsoft Fabric с помощью Apache Spark

В этом руководстве вы будете прием данных в Fabric lakehouses в разностном формате озера. Некоторые важные термины для понимания:

  • Lakehouse . Lakehouse — это коллекция файлов, папок и таблиц, представляющих базу данных по озеру данных, используемому подсистемой Spark и подсистемой SQL для обработки больших данных, и которая включает расширенные возможности для транзакций ACID при использовании таблиц с форматированными таблицами с открытым исходным кодом.

  • Delta Lake — Delta Lake — это слой хранения с открытым исходным кодом, который обеспечивает транзакции ACID, масштабируемое управление метаданными и пакетную и потоковую обработку данных в Apache Spark. Таблица Delta Lake — это формат таблицы данных, который расширяет файлы данных Parquet с помощью журнала транзакций на основе файлов для транзакций ACID и масштабируемого управления метаданными.

  • Открытые наборы данных Azure курируют общедоступные наборы данных, которые можно использовать для добавления функций для конкретных сценариев в решения машинного обучения для более точных моделей. Открытые наборы данных находятся в облаке служба хранилища Microsoft Azure и могут быть доступны различными методами, включая Apache Spark, REST API, фабрику данных и другие средства.

В этом руководстве вы используете Apache Spark для:

  • Чтение данных из контейнеров Открытых наборов данных Azure.
  • Запись данных в разностную таблицу Fabric lakehouse.

Необходимые компоненты

  • Получение подписки Microsoft Fabric. Или зарегистрируйте бесплатную пробную версию Microsoft Fabric.

  • Войдите в Microsoft Fabric.

  • Используйте переключатель интерфейса в левой части домашней страницы, чтобы перейти на интерфейс Synapse Обработка и анализ данных.

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

  • Добавьте lakehouse в эту записную книжку. Вы будете скачивание данных из общедоступного большого двоичного объекта, а затем хранение данных в lakehouse.

Следуйте инструкциям в записной книжке

1-ingest-data.ipynb — это записная книжка, сопровождающая это руководство.

Чтобы открыть сопровождающую записную книжку для этого руководства, следуйте инструкциям в статье "Подготовка системы для обработки и анализа данных", чтобы импортировать записную книжку в рабочую область.

Если вы хотите скопировать и вставить код на этой странице, можно создать новую записную книжку.

Перед запуском кода обязательно подключите lakehouse к записной книжке .

Данные об оттоке банка

Набор данных содержит состояние оттока 10 000 клиентов. Он также включает атрибуты, которые могут повлиять на отток, например:

  • Кредитная оценка
  • Географическое расположение (Германия, Франция, Испания)
  • Пол (мужчина, женщина)
  • Возраст
  • Срок пребывания (годы клиента банка)
  • Остаток на счете
  • Оценочная зарплата
  • Количество продуктов, приобретенных клиентом через банк
  • Статус кредитной карта (имеет ли клиент кредитную карта или нет)
  • Статус активного участника (независимо от того, является ли клиент активного банка или нет)

Набор данных также включает такие столбцы, как номер строки, идентификатор клиента и фамилия клиента, которые не должны влиять на решение клиента покинуть банк.

Событие, определяющее отток клиента, является закрытие банковского счета клиента. Столбец exited в наборе данных относится к отказу клиента. Нет большого контекста об этих атрибутах, поэтому вам нужно продолжать работу без получения фоновой информации о наборе данных. Цель состоит в том, чтобы понять, как эти атрибуты способствуют состоянию exited .

Примеры строк из набора данных:

"CustomerID" "Фамилия" "CreditScore" "Geography" "Пол" "Возраст" "Срок пребывания в должности" "Баланс" NumOfProducts HasCrCard IsActiveMember "EstimatedSalary" "Выход"
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.

Важно!

Перед запуском записной книжки убедитесь, что вы добавите lakehouse в записную книжку. В противном случае произойдет сбой.

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.")

Вы будете использовать только что используемые данные: