本教學以三角洲湖格式將資料匯入 Fabric 湖屋。 我們會在這裡定義一些重要的詞彙:
Lakehouse - Lakehouse 是代表數據湖上資料庫之檔案、資料夾和/或數據表的集合。 Spark 引擎和 SQL 引擎會使用 Lakehouse 資源來處理巨量數據處理。 當您使用開放原始碼 Delta 格式的數據表時,該處理會包含增強的 ACID 交易功能。
Delta Lake - Delta Lake 是開放原始碼儲存層,可將 ACID 交易、可調整的元數據管理和批次和串流數據處理帶入 Apache Spark。 作為資料表格式,Delta Lake 使用基於檔案的事務日志來擴展 Parquet 資料檔案,以進行 ACID 交易和可擴展的元數據管理。
Azure Open Datasets 是經過策劃的公開資料集,為機器學習解決方案增添情境特定功能。 這會導致更精確的模型。 Open Datasets 是位於 Microsoft Azure Storage 上的雲端資源。 Apache Spark、REST API、Data Factory 和其他工具可以存取開放數據集。
在本教學課程中,您可以使用 Apache Spark 來:
- 從 Azure Open Datasets 容器讀取資料。
- 將資料寫入 Fabric 湖倉 Delta 表格。
必要條件
訂閱Microsoft Fabric。 或者,註冊免費的Microsoft Fabric試用。
使用首頁左下角的體驗切換器切換到 Fabric。
- 在此筆記本中新增一個湖泊倉庫。 在本教學課程中,您會先從公用 Blob 下載數據。 然後,數據會儲存在該 Lakehouse 資源中。
備註
在開始之前,務必完成 「準備你的系統 」步驟:建立工作區、建立湖邊小屋,並附加到你的筆記本上。 本教學中使用的範例資料來自 Azure Open Datasets 的公開容器,並透過筆記本程式碼以程式方式存取。
使用筆記本跟著做
1-ingest-data.ipynb 筆記本會伴隨本教學課程。
若要開啟本教學課程隨附的筆記本,請遵循 準備系統以進行數據科學教學 課程中的指示,將筆記本匯入您的工作區。
如果您想要複製並貼上此頁面中的程式碼,您可以 建立新的筆記本。
開始執行程式碼之前,請務必 將 Lakehouse 連接至筆記本。
銀行客戶流失資料
數據集包含 10,000 個客戶的變換狀態資訊。 它也包含可能會影響流失的屬性,例如:
- 信用分數
- 地理位置 (德國、法國、西班牙)
- 性別 (男性、女性)
- 年齡
- 任期(客戶是該銀行的客戶年數)
- 帳戶餘額
- 估算薪資
- 客戶透過銀行購買的產品數目
- 信用卡狀態 (客戶是否有信用卡)
- 活躍成員狀態(客戶是否有活躍銀行客戶狀態)
資料集也包含這些資料列:
- 列編號
- 客戶識別碼
- 客戶姓氏
這些欄應該不會影響客戶離開銀行的決定。
客戶銀行帳戶的關閉會定義該客戶的流失。 數據集 exited 欄是指客戶的放棄。 關於這些屬性的背景資訊很少,因此您必須在缺乏背景資訊的情況下繼續進行。 我們的目標是了解這些屬性如何影響exited狀態。
範例資料集資料列:
| “CustomerID” | 姓氏 | “CreditScore” | 地理學 | 性別 | “年齡” | “任期” | “餘額” | 產品數量 | “HasCrCard” | “IsActiveMember” | 預估薪資 | 離開 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 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 新增 至筆記本。 無法這麼做會導致錯誤。
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.")
相關內容
您使用您剛才匯入的資料: