Aracılığıyla paylaş


Öğ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

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.")

Yeni alınan verileri kullanacaksınız: