チュートリアル パート 1: Apache Spark を使用して Microsoft Fabric Lakehouse にデータを取り込む
このチュートリアルでは、データをデルタ レイク形式で 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 Lakehouse デルタ テーブルにデータを書き込みます。
前提 条件
Microsoft Fabric サブスクリプションを取得します。 または、Microsoft Fabric の試用版に無料でサインアップします。
Microsoft Fabric にサインインします。
ホーム ページの左下にあるエクスペリエンス スイッチャーを使用して、Fabric に切り替えます。
- このノートブックにレイクハウス を追加します。 パブリック BLOB からデータをダウンロードし、そのデータを lakehouse に格納します。
ノートブックで作業を進める
1-ingest-data.ipynb は、このチュートリアルに付属するノートブックです。
このチュートリアルの付属のノートブックを開くには、「データ サイエンス用にシステムを準備する」の手順に従って、ノートブックをワークスペースにインポート します。
このページからコードをコピーして貼り付けたい場合は、新しいノートブックを作成できます。
コードの実行を開始する前に、必ずレイクハウスをノートブックにアタッチしてください。
銀行離れデータ
データセットには、10,000 人の顧客のチャーン状態が含まれています。 また、次のようなチャーンに影響を与える可能性のある属性も含まれています。
- クレジット スコア
- 地理的な場所 (ドイツ、フランス、スペイン)
- 性別 (男性、女性)
- 年齢
- 在職期間 (銀行の顧客の年数)
- 口座残高
- 推定給与
- 顧客が銀行を通じて購入した製品の数
- クレジット カードの状態 (顧客がクレジット カードを持っているかどうか)
- アクティブなメンバーの状態 (アクティブな銀行の顧客かどうか)
データセットには、行番号、顧客 ID、顧客姓などの列も含まれています。この列は、銀行を離れるという顧客の決定に影響を与えるべきではありません。
顧客のチャーンを定義するイベントは、顧客の銀行口座のクローズです。 データセット内の exited
列は、顧客の破棄を参照します。 これらの属性に関して使用できるコンテキストはあまりないため、データセットに関する背景情報を取得せずに続行する必要があります。 目的は、これらの属性が exited
の状態にどのように影響するかを理解するためです。
データセットの行の例:
"CustomerID" | 名字 | "CreditScore" | 地理 | ジェンダー | 年齢 | "Tenure" | "Balance" | "NumOfProducts" | "HasCrCard" | "IsActiveMember" | 推定給与 | "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.")
関連コンテンツ
取り込んだばかりの次のデータを使用します。
パート 2: ノートブック を使用してデータを探索して視覚化する