次の方法で共有


チュートリアル パート 1: Apache Spark を使用して Microsoft Fabric レイクハウスにデータを取り込む

このチュートリアルでは、データを Delta レイク形式で Fabric レイクハウスに取り込みます。 理解すべき重要な用語の一部を次に示します。

  • Lakehouse - Lakehouse は、Spark エンジンと SQL エンジンによってビッグ データ処理に使用されるデータ レイク上のデータベースを表すファイル、フォルダー、およびテーブルのコレクションであり、オープンソースの Delta 形式のテーブルを使用する場合の ACID トランザクションの機能が強化されています。

  • Delta Lake - Delta Lake は、ACID トランザクション、スケーラブルなメタデータ管理、バッチおよびストリーミング データ処理を Apache Spark に提供するオープンソース ストレージ レイヤーです。 Delta Lake テーブルは、ACID トランザクションとスケーラブルなメタデータ処理のためのファイルベースのトランザクション ログを使用して Parquet データ ファイルを拡張するデータテーブル形式です。

  • Azure Open Datasets は選別されたパブリック データセットであり、機械学習ソリューションにシナリオ固有の機能を追加してモデルの精度を上げるために使用できます。 オープン データセットは、Microsoft Azure Storage 上のクラウドにあり、Apache Spark、REST API、Data Factory、その他のツールなど、さまざまな方法でアクセスできます。

このチュートリアルでは、次の内容に Apache Spark を使用します。

  • Azure Open Datasets コンテナーからデータを読み取ります。
  • Fabric レイクハウス Delta テーブルにデータを書き込みます。

前提条件

  • このノートブックにレイクハウスを追加します。 パブリック BLOB からデータをダウンロードし、レイクハウスにデータを格納します。

ノートブックで作業を進める

1-ingest-data.ipynb は、このチュートリアルに付属するノートブックです。

このチュートリアルに付随するノートブックを開くには、「データ サイエンス用にシステムを準備する」チュートリアル の手順に従い、ノートブックをお使いのワークスペースにインポートします。

このページからコードをコピーして貼り付ける場合は、新しいノートブックを作成することができます。

コードの実行を開始する前に、必ずレイクハウスをノートブックにアタッチしてください。

銀行のチャーン データ

データセットには、10,000 人の顧客のチャーン状態が含まれます。 また、次のようなチャーンに影響を与える可能性のある属性も含まれます。

  • クレジット スコア
  • 地理的な場所 (ドイツ、フランス、スペイン)
  • 性別 (男性、女性)
  • Age
  • 年数 (銀行の顧客である年数)
  • 口座残高
  • 推定給与
  • 銀行を通じて顧客が購入した製品の数
  • クレジット カード状態 (顧客がクレジット カードを所有しているかどうか)
  • アクティブ メンバー状態 (銀行のアクティブな顧客であるかどうか)

データセットには、銀行を離れるという顧客の決定に影響を与えることのない、行番号、顧客 ID、顧客の姓などの列も含まれています。

顧客のチャーンを定義するイベントは、顧客の銀行口座の閉鎖です。 データセットの列 exited は、顧客の放棄を意味します。 これらの属性に関して利用可能なコンテキストがあまりないため、データセットに関する背景情報を持たずに進める必要があります。 ここでの目的は、これらの属性が exited 状態にどのように影響するかを理解することです。

データセットの行の例:

"CustomerID" "Surname" "CreditScore" "Geography" "Gender" "Age" "Tenure" "Balance" "NumOfProducts" "HasCrCard" "IsActiveMember" "EstimatedSalary" "Exited"
15634602 Hargrave 619 フランス 女性 42 2 0.00 1 1 1 101348.88 1
15647311 Hill 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.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.")

取り込んだばかりの次のデータを使用します。