Öğretici 1. Bölüm: Apache Spark kullanarak bir Microsoft Fabric lakehouse'a veri alma
Bu öğreticide delta lake biçimindeki Fabric lakehouses'a veri alacağız. Anlaşılması gereken bazı önemli terimler:
Lakehouse - Lakehouse , Spark altyapısı ve SQL altyapısı tarafından büyük veri işleme için kullanılan bir veri gölü üzerindeki veritabanını temsil eden ve açık kaynak Delta biçimli tabloları kullanırken ACID işlemleri için gelişmiş özellikler içeren bir dosya/klasör/tablo koleksiyonudur.
Delta Lake - Delta Lake, ACID işlemlerini, ölçeklenebilir meta veri yönetimini ve toplu iş ve akış verisi işlemeyi Apache Spark'a getiren bir açık kaynak depolama katmanıdır. Delta Lake tablosu, ACID işlemleri ve ölçeklenebilir meta veri yönetimi için dosya tabanlı işlem günlüğüyle Parquet veri dosyalarını genişleten bir veri tablosu biçimidir.
Azure Açık Veri Kümeleri , daha doğru modeller için makine öğrenmesi çözümlerine senaryoya özgü özellikler eklemek için kullanabileceğiniz genel veri kümeleridir. Açık Veri Kümeleri bulutta Microsoft Azure Depolama ve Apache Spark, REST API, Data factory ve diğer araçlar gibi çeşitli yöntemlerle erişilebilir.
Bu öğreticide Apache Spark'ı kullanarak:
- Azure Open Datasets kapsayıcılarından verileri okuma.
- Fabric lakehouse delta tablosuna veri yazma.
Önkoşullar
Microsoft Fabric aboneliği alın. Alternatif olarak, ücretsiz bir Microsoft Fabric deneme sürümüne kaydolun.
Synapse Veri Bilimi deneyimine geçmek için giriş sayfanızın sol tarafındaki deneyim değiştiriciyi kullanın.
- Bu not defterine bir göl evi ekleyin. Genel bir blobdan veri indirecek ve ardından verileri lakehouse'da depolayacaksınız.
Not defterinde birlikte izleyin
1-ingest-data.ipynb , bu öğreticiye eşlik eden not defteridir.
Bu öğreticide eşlik eden not defterini açmak için, not defterini çalışma alanınıza aktarmak üzere Sisteminizi veri bilimi öğreticilerine hazırlama başlığındaki yönergeleri izleyin.
Bu sayfadaki kodu kopyalayıp yapıştırmayı tercih ederseniz, yeni bir not defteri oluşturabilirsiniz.
Kod çalıştırmaya başlamadan önce not defterine bir göl evi eklediğinizden emin olun.
Banka değişim sıklığı verileri
Veri kümesi 10.000 müşterinin değişim durumunu içerir. Ayrıca aşağıdakiler gibi değişim değişimlerini etkileyebilecek öznitelikler de içerir:
- Kredi puanı
- Coğrafi konum (Almanya, Fransa, İspanya)
- Cinsiyet (erkek, kadın)
- Yaş
- Çalışma süresi (bankanın müşterisi olma yılları)
- Hesap bakiyesi
- Tahmini maaş
- Müşterinin banka aracılığıyla satın aldığı ürün sayısı
- Kredi kartı durumu (müşterinin kredi kartı olup olmadığı)
- Etkin üye durumu (etkin bir bankanın müşterisi olsun veya olmasın)
Veri kümesi satır numarası, müşteri kimliği ve müşteri soyadı gibi, müşterinin bankadan ayrılma kararını etkilememesi gereken sütunlar da içerir.
Müşterinin değişim değişim oranını tanımlayan olay, müşterinin banka hesabının kapatılmasıdır. Veri kümesindeki sütun exited
müşterinin bırakmasına başvurur. Bu öznitelikler hakkında çok fazla bağlam olmadığından veri kümesi hakkında arka plan bilgilerine sahip olmadan devam etmek zorunda kalabilirsiniz. Amaç, bu özniteliklerin duruma nasıl katkıda bulunu exited
olduğunu anlamaktır.
Veri kümesinden örnek satırlar:
"CustomerID" | "Soyadı" | "CreditScore" | "Coğrafya" | "Cinsiyet" | "Yaş" | "Görev Süresi" | "Bakiye" | "NumOfProducts" | "HasCrCard" | "IsActiveMember" | "Tahmini Satış" | "Çıktı" |
---|---|---|---|---|---|---|---|---|---|---|---|---|
15634602 | Hargrave | 619 | Fransa | Kadın | 42 | 2 | Kategori 0.00 | 1 | 1 | 1 | 101348.88 | 1 |
15647311 | Hill | 608 | İspanya | Kadın | 41 | 1 | 83807.86 | 1 | 0 | 1 | 112542.58 | 0 |
Veri kümesini indirme ve lakehouse'a yükleme
İpucu
Aşağıdaki parametreleri tanımlayarak bu not defterini farklı veri kümeleriyle kolayca kullanabilirsiniz.
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
Bu kod, veri kümesinin genel kullanıma açık bir sürümünü indirir ve bir Fabric lakehouse'da depolar.
Önemli
Çalıştırmadan önce not defterine bir göl evi eklediğinizden emin olun. Bunun yapılmaması hataya neden olur.
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.")
İlgili içerik
Yeni alınan verileri kullanacaksınız: