# Polars 2.0: Birleştirmeler neden artık satır sırasını korumuyor?

Published: 2026-10-08

Polars 2.0, varsayılan olarak bir akış motorunda 'collect' çalıştırır. 'join', 'group\_by' ve 'unpivot' için, 'maintain\_order' veya 'sort' açıkça ayarlanmadıkça, bu sürüm artık girdi satır sırasını garanti etmez. Polars 2.0.0'daki çalışmamızda, 2.000.000 satırlık bir iç birleştirme, varsayılan olarak satırları girdi sırasının dışında döndürdü ve 'maintain\_order' ayarıyla sırayı korudu. Sürüm ayrıca çekirdek dışı taşmayı da açar ve kıyaslama iddialarını satıcının kendi iddiaları haline getirir.

Canonical: https://thedailydiff.dev/tr/video/polars-2-row-order/

## Bu video neleri kapsar

- Tembel bir sorguda collect() çağırmak artık varsayılan olarak akış motorunu kullanır ve bu, join, group\_by ve unpivot için satır sırasını garanti etmez.
- Geçiş kılavuzu, sıranın artık 2.0 öncesi sıra olmadığını ve garanti edilmediğini belirtir; buna güveniyorsanız açık bir sıralama önerir.
- Çalışmamızda, varsayılan bir iç birleştirme girdi sırasını Yanlış döndürdü; birleştirmede maintain\_order="left\_right" ayarı Doğru döndürdü. Bir makine, bir çalıştırma, bir birleştirme şekli.
- Çekirdek dışı taşma varsayılan olarak açıktır: RAM'in yaklaşık %80'inde başlar, varsayılan 64 GB disk bütçesiyle. Çekirdek dışı birleştirme ve group\_by yol haritasında.
- collect\_schema() herhangi bir veri okunmadan önce eksik bir sütunu yakalar, ancak tek bir değerde başarısız olan bir dönüştürme yalnızca collect()'te başarısız olur.
- TPC-H ve TPC-DS karşılaştırması, satıcının türetilmiş veriler üzerindeki kendi çalışmasıdır ve dipnotu, sonuçların resmi kıyaslamalarla karşılaştırılamayacağını belirtir.

## Bölümler

- 0:00 Varsayılan sıra neden değişti?
- 0:56 Geçiş kılavuzu ne vaat ediyor?
- 1:17 Kıyaslama adil bir mücadele mi?
- 1:41 Çalıştırdığımızda ne görüyoruz?
- 1:56 Daha katı olmak daha erken anlamına mı geliyor?
- 2:07 Eski sırayı nasıl geri alırım?
- 2:20 Karar nedir?

## Çevrilmiş deşifre

Orijinal İngilizce anlatımdan çevrilmiştir. Mevcut ses ve altyazılar YouTube tarafından kontrol edilir.

### Varsayılan sıra neden değişti?

0:00 Bir birleştirmenin satırlarınızı yazdığınız sırayla geri verdiğini düşünüyorsunuz. Polars 2.0, varsayılan olarak bunu kasıtlı olarak vaat etmeyi bıraktı. Bu videoda: varsayılan neden değişti? Ne kazandırdı? Ve hangi betikleriniz önce bozulacak? Bu, The Daily Diff, perde arkası. Polars, açık kaynaklı bir DataFrame kütüphanesidir: Python'dan çağırdığınız bir tablo motoru,

0:20 çekirdeği Rust ile yazılmış. MIT lisansı altında ücretsizdir ve pip install polars ile kurarsınız. Önce bir detay. Eski sırayı geri getiren anahtar, birleştirmenin kendisine bir argümandır. Buna en sonda geri döneceğim. 2.0'dan beri, 'collect' varsayılan olarak akış motorunu çalıştırır. Akış, sorguyu paralel çalışan parçalara böler, ve parçalar bittiğinde biter.

0:42 Birleştirme, gruplama ve sütunları satırlara dönüştürme için, sürüm bir sıra vaat etmez. Kim önce etkilenir? Çıktıyı kaydedilmiş bir dosyayla satır satır karşılaştıran herkes. Bu test dizüstü bilgisayarınızda geçebilir ve farklı bir makinede başarısız olabilir. Sırada, geçiş kılavuzu.

### Geçiş kılavuzu ne vaat ediyor?

0:57 Yukarıda gösterilen tam satır sırasının garanti edilmediğini söylüyor. Bu nedenle, sıraya güveniyorsanız, açıkça sıralayın. Çekirdek dışı varsayılan olarak da açıktır. RAM'in yaklaşık yüzde sekseninde diske taşmaya başlar, altmış dört gigabaytlık bir bütçeyle. Sıralama, pencere fonksiyonları ve birçok ifade artık taşabilir. Birleştirmeler ve gruplamalar geliyor.

### Kıyaslama adil bir mücadele mi?

1:17 Polars, TPC-H ve TPC-DS kıyaslamalarında DataFusion ve DuckDB'yi yendiğini söylüyor. Sayılar, türetilmiş veriler üzerindeki kendi çalışmalarından geliyor, ve dipnotu, resmi sonuçlarla karşılaştırılamayacağını söylüyor. Kendi sayıları, Polars'ın TPC-H'de on altı çekirdekten yüz doksan ikiye yaklaşık üç nokta sekiz kat hızlandığını söylüyor. Ayrıca büyük makinenin ekstra iş parçacıklarının küçük sorguları yavaşlattığını da belirtiyorlar. Polars 2.0.0'da aynı birleştirmeyi iki kez çalıştırdık.

### Çalıştırdığımızda ne görüyoruz?

1:41 Varsayılan çalıştırma satırları karıştırır. Bayrakla birlikte girdi sırası korunur. Bir testi besleyen birleştirmeleri bulun. Arkasında sıralama olmayan herhangi bir birleştirme, asla yapmadığınız bir satır sırası kararıdır. Polars 2.0, türler konusunda daha katıdır. Şema kontrolü, herhangi bir veri okunmadan önce eksik bir sütunu yakalar.

### Daha katı olmak daha erken anlamına mı geliyor?

1:58 Tek bir satırda başarısız olan bir dönüştürmeyi yakalayamaz, çünkü bu hata veriyi bekler. Şimdi açtığım döngüye gelelim. Anahtar birleştirmenin üzerindedir.

### Eski sırayı nasıl geri alırım?

2:08 Birleştirmede maintain\_order'ı ayarlayın veya arkasına bir sıralama ekleyin. Kılavuz sıralamayı önerir. Birleştirme bayrağı, çalışmamızda sırayı korudu, sol tarafın sırası sol, sağ olarak korundu. Perde arkası karar: İNCELENMELİ. Yükseltmeden önce her birleştirmeyi incelerdim.

### Karar nedir?

2:22 Bununla ilgili bir sorunuz mu var? Yorumlara yazın. Ve bugünkü fark bu kadar. Ben Axrisi'den Niko. Sorumlu bir şekilde birleştirin. Sorumlu bir şekilde birleştirin.

## Kaynaklar

- [Release of Polars 2.0](https://pola.rs/posts/release-polars-2/) — Polars (pola.rs)
- [Polars 2.0 upgrade guide](https://docs.pola.rs/releases/upgrade/2/) — Polars documentation
- [Polars homepage](https://pola.rs/) — Polars (pola.rs)
- [polars-2.0-benchmark repository](https://github.com/pola-rs/polars-2.0-benchmark) — Polars on GitHub
- [Release of Polars 2.0 (Hacker News discussion)](https://news.ycombinator.com/item?id=49977177) — Hacker News
