教學課程第 1 部分:使用 Apache Spark 將資料內嵌至 Microsoft Fabric Lakehouse
在本教學課程中,您會將資料內嵌至 Delta Lakehouse 格式的 Fabric Lakehouse。 要了解的一些重要字詞:
Lakehouse - Lakehouse 是檔案/資料夾/資料表的集合,代表 Spark 引擎和 SQL 引擎用於巨量資料處理之 Lakehouse 上的資料庫,並在使用開放原始碼差異格式化資料表時,包含 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 Fabric 訂用帳戶。 或註冊免費的 Microsoft Fabric 試用版。
登入 Microsoft Fabric。
使用首頁左下方的體驗切換器,切換至 Fabric。
- 將 Lakehouse 新增至此筆記本。 您將會從公用 Blob 下載資料,然後將資料儲存在 Lakehouse 中。
遵循筆記本中的指示
1-ingest-data.ipynb 是本教學課程隨附的筆記本。
若要開啟本教學課程隨附的筆記本,請遵循 在資料科學教學課程中準備系統的指示, 將筆記本匯入工作區。
如果您想要複製並貼上此頁面中的程式碼,則可以建立新的筆記本。
開始執行程式碼之前,請務必將 Lakehouse 連結至筆記本。
銀行流失資料
資料集包含 10,000 個客戶的流失狀態。 它也包含可能會影響流失率的屬性,例如:
- 信用分數
- 地理位置 (德國、法國、西班牙)
- 性別 (男性、女性)
- 年齡
- 會員年資 (成為銀行客戶的年資)
- 帳戶餘額
- 估算薪資
- 客戶透過銀行購買的產品數目
- 信用卡狀態 (客戶是否有信用卡)
- 作用中成員狀態 (是否為作用中的銀行客戶)
資料集也包含資料列號碼、客戶識別碼和客戶姓氏等資料行,這些資料行對客戶離開銀行的決定沒有影響。
定義客戶流失的事件是客戶銀行帳戶關閉。 資料集中的資料行 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 中。
重要
在執行之前,請確定已將 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.")
相關內容
您將使用剛擷取的資料: