บทช่วยสอนส่วนที่ 1: นําเข้าข้อมูลลงใน Microsoft Fabric lakehouse โดยใช้ Apache Spark
ในบทช่วยสอนนี้ คุณจะรวบรวมข้อมูลลงใน Fabric lakehouses ในรูปแบบ delta lake คําศัพท์สําคัญบางคําที่ต้องทําความเข้าใจ:
เลคเฮ้าส์ - เลคเฮ้าส์ เป็นคอลเลกชันของไฟล์/โฟลเดอร์/ตารางที่แสดงถึงฐานข้อมูลผ่าน data lake ที่ใช้โดยกลไกจัดการ Spark และกลไก SQL สําหรับการประมวลผลข้อมูลขนาดใหญ่ และรวมถึงความสามารถที่เพิ่มขึ้นสําหรับธุรกรรม ACID เมื่อใช้ตารางที่มีการจัดรูปแบบ Delta แบบโอเพนซอร์ส
Delta Lake - Delta Lake เป็นเลเยอร์ที่เก็บข้อมูลแบบโอเพนซอร์สที่นําธุรกรรม ACID การจัดการเมตาดาต้าที่ปรับขนาดได้ และการประมวลผลชุดงานและการสตรีมข้อมูลไปยัง Apache Spark ตาราง Delta Lake เป็นรูปแบบตารางข้อมูลที่ขยายไฟล์ข้อมูล Parquet ด้วยบันทึกธุรกรรมตามไฟล์สําหรับธุรกรรม ACID และการจัดการเมตาดาต้าที่ปรับขนาดได้
Azure Open Datasets ได้รับการรวบรวมชุดข้อมูลสาธารณะที่คุณสามารถใช้เพื่อเพิ่มคุณลักษณะเฉพาะสถานการณ์ไปยังโซลูชันการเรียนรู้ของเครื่องสําหรับแบบจําลองที่ถูกต้องยิ่งขึ้น ชุดข้อมูลแบบเปิดอยู่ในระบบคลาวด์บน Microsoft Azure Storage และสามารถเข้าถึงได้โดยใช้วิธีต่าง ๆ รวมถึง Apache Spark, REST API, Data factory และเครื่องมืออื่น ๆ
ในบทช่วยสอนนี้ คุณจะใช้ Apache Spark เพื่อ:
- อ่านข้อมูลจากคอนเทนเนอร์ Azure Open Datasets
- เขียนข้อมูลลงในตาราง Delta ของ Fabric lakehouse
ข้อกำหนดเบื้องต้น
รับการสมัครใช้งาน Microsoft Fabric หรือลงทะเบียนเพื่อทดลองใช้งาน Microsoft Fabric ฟรี
ลงชื่อเข้าใช้ Microsoft Fabric
ใช้ตัวสลับประสบการณ์ทางด้านซ้ายของโฮมเพจของคุณเพื่อสลับไปยังประสบการณ์วิทยาศาสตร์ข้อมูล Synapse
- เพิ่มเลคเฮาส์ ลงในสมุดบันทึกนี้ คุณจะดาวน์โหลดข้อมูลจาก blob สาธารณะ จากนั้นจัดเก็บข้อมูลในเลคเฮ้าส์
ติดตามพร้อมกับในสมุดบันทึก
1-ingest-data.ipynb คือสมุดบันทึกที่มาพร้อมกับบทช่วยสอนนี้
เมื่อต้องการเปิดสมุดบันทึกที่มาพร้อมกับบทช่วยสอนนี้ ให้ทําตามคําแนะนําใน เตรียมระบบของคุณสําหรับบทช่วยสอนวิทยาศาสตร์ข้อมูล เพื่อนําเข้าสมุดบันทึกไปยังพื้นที่ทํางานของคุณ
ถ้าคุณต้องการคัดลอกและวางรหัสจากหน้านี้แทน คุณสามารถสร้าง สมุดบันทึกใหม่ได้
ตรวจสอบให้แน่ใจว่าแนบ lakehouse เข้ากับสมุดบันทึก ก่อนที่คุณจะเริ่มเรียกใช้รหัส
ข้อมูลการเลิกใช้บริการของธนาคาร
ชุดข้อมูลประกอบด้วยสถานะการเลิกใช้บริการของลูกค้า 10,000 ราย นอกจากนี้ยังมีแอตทริบิวต์ที่อาจส่งผลกระทบต่อการเลิกใช้บริการ เช่น:
- คะแนนเครดิต
- ตําแหน่งที่ตั้งทางภูมิศาสตร์ (เยอรมนี ฝรั่งเศส สเปน)
- เพศ (ชาย, หญิง)
- อายุ
- ระยะเวลาการครอบครอง (ปีของการเป็นลูกค้าของธนาคาร)
- ยอดคงเหลือบัญชี
- เงินเดือนโดยประมาณ
- จํานวนผลิตภัณฑ์ที่ลูกค้าซื้อผ่านธนาคาร
- สถานะบัตรเครดิต (ว่าลูกค้ามีบัตรเครดิตหรือไม่)
- สถานะสมาชิกที่ใช้งานอยู่ (ไม่ว่าจะเป็นลูกค้าของธนาคารที่ใช้งานอยู่หรือไม่)
ชุดข้อมูลยังรวมถึงคอลัมน์ เช่น หมายเลขแถว รหัสลูกค้า และนามสกุลของลูกค้าที่ไม่ควรมีผลกระทบต่อการตัดสินใจของลูกค้าในการออกจากธนาคาร
เหตุการณ์ที่กําหนดการเลิกใช้บริการของลูกค้าคือการปิดบัญชีธนาคารของลูกค้า คอลัมน์ exited
ในชุดข้อมูลอ้างอิงถึงการละทิ้งลูกค้า มีบริบทไม่มากนักเกี่ยวกับแอตทริบิวต์เหล่านี้ดังนั้นคุณต้องดําเนินต่อโดยไม่ต้องมีข้อมูลพื้นหลังเกี่ยวกับชุดข้อมูล จุดมุ่งหมายคือการทําความเข้าใจว่าแอตทริบิวต์เหล่านี้มีส่วนร่วมใน exited
สถานะอย่างไร
แถวตัวอย่างจากชุดข้อมูล:
"CustomerID" | "นามสกุล" | "CreditScore" | "ภูมิศาสตร์" | "เพศ" | "อายุ" | "ระยะเวลาการครอบครอง" | "ยอดคงเหลือ" | "NumOfProducts" | "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.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.")
เนื้อหาที่เกี่ยวข้อง
คุณจะใช้ข้อมูลที่คุณเพิ่งนําเข้า: