BaşlayınÜcretsiz başlayın

Parquet sink'lerini çoğullama

Ekip artık aynı temizlenmiş sorgudan iki çıktı istiyor: biri dijital ödemeler, diğeri fiziksel için. Polars paylaşılan taramayı bir kez planlayabilsin diye her iki yazmayı da tembel (lazy) şekilde kur, sonra ikisini tek geçişte birlikte çalıştır.

clean_checkouts, DIGITAL_EXPORT_PATH ve PHYSICAL_EXPORT_PATH önceden yüklendi.

Bu egzersiz, kursun bir parçasıdır

Polars ile Veri Hatlarını Ölçeklendirme ve Optimize Etme

Kursa Göz Atın

Egzersiz talimatları

  • Her iki sink'i de hemen çalışmasın diye tembel (lazy) olarak kur.
  • Her iki sink'i de streaming motorunda birlikte çalıştır.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# Lazy sink for digital
digital_sink = (
    clean_checkouts
    .filter(pl.col("use") == "Digital")
    .sink_parquet(DIGITAL_EXPORT_PATH, lazy=____)
)

# Lazy sink for physical
physical_sink = (
    clean_checkouts
    .filter(pl.col("use") == "Physical")
    .sink_parquet(PHYSICAL_EXPORT_PATH, lazy=____)
)

# Run both sinks together
pl.____([digital_sink, physical_sink], engine="streaming")

# Check the row counts of each extract
result = pl.DataFrame(
    {
        "extract": ["digital", "physical"],
        "rows": [
            pl.scan_parquet(DIGITAL_EXPORT_PATH).select(pl.len()).collect().item(),
            pl.scan_parquet(PHYSICAL_EXPORT_PATH).select(pl.len()).collect().item(),
        ],
    }
)
print(result)
Kodu Düzenle ve Çalıştır