本教學課程會以 Delta Lake 格式將數據匯入 Fabric Lakehouses。 我們會在這裡定義一些重要的詞彙:
Lakehouse - Lakehouse 是代表數據湖上資料庫之檔案、資料夾和/或數據表的集合。 Spark 引擎和 SQL 引擎會使用 Lakehouse 資源來處理巨量數據處理。 當您使用開放原始碼 Delta 格式的數據表時,該處理會包含增強的 ACID 交易功能。
Delta Lake - Delta Lake 是開放原始碼儲存層,可將 ACID 交易、可調整的元數據管理和批次和串流數據處理帶入 Apache Spark。 作為資料表格式,Delta Lake 使用基於檔案的事務日志來擴展 Parquet 資料檔案,以進行 ACID 交易和可擴展的元數據管理。
Azure 開放數據集 是策劃的公用數據集,可將案例特定功能新增至機器學習解決方案。 這會導致更精確的模型。 開放資料集是位於 Microsoft Azure 儲存體上的雲端資源。 Apache Spark、REST API、Data Factory 和其他工具可以存取開放數據集。
在本教學課程中,您可以使用 Apache Spark 來:
- 從 Azure 開放資料集容器讀取資料。
- 將資料寫入 Fabric Lakehouse 差異資料表。
必要條件
取得 Microsoft網狀架構訂用帳戶。 或者,註冊免費的 Microsoft Fabric 試用版。
登入 Microsoft Fabric。
使用首頁左下方的體驗切換器,切換至 Fabric。
- 在此筆記本中新增一個湖泊倉庫。 在本教學課程中,您會先從公用 Blob 下載數據。 然後,數據會儲存在該 Lakehouse 資源中。
遵循筆記本中的指示
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 中:
重要
執行之前,請務必 將 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.")
相關內容
您使用您剛才匯入的資料: