Bilinen sınırlamalar Databricks not defterleri
Bu makale, Databricks not defterlerinin bilinen sınırlamalarını kapsar. Ek kaynak sınırları için bkz . Kaynak sınırları.
Not defteri boyutlandırma
- Tek tek not defteri hücrelerinin giriş sınırı 6 MB'tır.
- Düzeltme anlık görüntülerinin otomatik kaydetme, içeri aktarma, dışarı aktarma ve kopyalama için en büyük not defteri boyutu 10 MB'tır.
- 32 MB'a kadar olan not defterlerini el ile kaydedebilirsiniz.
Not defteri sonuçları tablosu
- Tablo sonuçları 10.000 satır veya 2 MB (hangisi daha düşükse) ile sınırlıdır.
- İş kümelerinin not defteri çıktı boyutu üst sınırı 30 MB'tır.
- Tablosal olmayan komut sonuçlarının 20 MB sınırı vardır.
- Varsayılan olarak, metin sonuçları en fazla 50.000 karakter döndürür. Databricks Runtime 12.2 LTS ve üzeri ile Spark yapılandırma özelliğini
spark.databricks.driver.maxReplOutputLength
ayarlayarak bu sınırı artırabilirsiniz.
Not defteri hata ayıklayıcısı
Not defteri hata ayıklayıcısının sınırlamaları:
- Hata ayıklayıcı yalnızca Python ile çalışır. Scala veya R'i desteklemez.
- Hata ayıklayıcısı Paylaşılan erişim modu kümelerinde çalışmaz.
- Hata ayıklayıcısı dış dosyalara veya modüllere adım atılma işlemini desteklemez.
- Hata ayıklama oturumu etkinken not defterinde başka komutlar çalıştıramazsınız.
SQL ambarı not defterleri
SQL ambarları not defterlerinin sınırlamaları:
- Bir SQL ambarına eklendiğinde, yürütme bağlamları 8 saatlik boşta kalma zaman aşımına sahiptir.
ipywidgets
- ipywidgets kullanan bir not defteri, çalışan bir kümeye eklenmelidir.
- Pencere öğesi durumları not defteri oturumlarında korunmaz. Not defterini bir kümeye her eklediğinizde bunları işlemek için pencere öğesi hücrelerini yeniden çalıştırmanız gerekir.
- Parola ve Denetleyici ipywidget'leri desteklenmez.
- LaTeX ifadelerine sahip HTMLMath ve Label pencere öğeleri doğru işlenmiyor. (Örneğin,
widgets.Label(value=r'$$\frac{x+1}{x-1}$$')
doğru şekilde işlenmez.) - Not defteri koyu moddaysa, özellikle renkli pencere öğelerinde pencere öğeleri doğru işlenmeyebilir.
- Pencere öğesi çıkışları not defteri pano görünümlerinde kullanılamaz.
- Ipywidget için ileti yükü boyutu üst sınırı 5 MB'tır. Görüntüleri veya büyük metin verilerini kullanan pencere öğeleri düzgün işlenmeyebilir.
Databricks pencere öğeleri
Databricks pencere öğelerinin sınırlamaları:
Not defterinde en fazla 512 pencere öğesi oluşturulabilir.
Pencere öğesi adı 1024 karakterle sınırlıdır.
Pencere öğesi etiketi 2048 karakterle sınırlıdır.
Metin pencere öğesine en fazla 2048 karakter girilebilir.
Çoklu seçim, birleşik giriş kutusu veya açılan pencere öğesi için en fazla 1024 seçenek olabilir.
Koddaki pencere öğesini temizledikten veya kaldırdıktan sonra bile Tümünü Çalıştır'a bastıktan sonra pencere öğesi durumunun düzgün temizlenmediği bilinen bir sorun vardır. Böyle bir durumda, pencere öğesinin görseli ile yazdırılan durumları arasında bir tutarsızlık görürsünüz. Hücreleri tek tek yeniden çalıştırmak bu sorunu atlayabilir. Bu sorunu tamamen önlemek için Databricks ipywidgets kullanılmasını önerir.
Zaman uyumsuz kod çalışırken pencere öğesi durumu değişeebileceği için pencere öğesi durumuna doğrudan iş parçacıkları, alt işlemler veya Yapılandırılmış Akış (foreachBatch) gibi zaman uyumsuz bağlamlarda erişmemelisiniz. Zaman uyumsuz bir bağlamda pencere öğesi durumuna erişmeniz gerekiyorsa, bunu bağımsız değişken olarak geçirin. Örneğin, iş parçacıkları kullanan aşağıdaki kodunuz varsa:
import threading def thread_func(): # Unsafe access in a thread value = dbutils.widgets.get('my_widget') print(value) thread = threading.Thread(target=thread_func) thread.start() thread.join()
Databricks bunun yerine bağımsız değişken kullanılmasını önerir:
# Access widget values outside the asynchronous context and pass them to the function value = dbutils.widgets.get('my_widget') def thread_func(val): # Use the passed value safely inside the thread print(val) thread = threading.Thread(target=thread_func, args=(value,)) thread.start() thread.join()
Pencere öğeleri genellikle bir not defterindeki farklı diller arasında bağımsız değişkenler geçiremez. Python hücresinde bir pencere öğesi
arg1
oluşturabilir ve aynı anda bir hücre çalıştırırsanız bunu SQL veya Scala hücresinde kullanabilirsiniz. Ancak, Tümünü Çalıştır'ı kullanırsanız veya not defterini iş olarak çalıştırırsanız bu işe yaramaz. Bazı geçici çözümler şunlardır:- Dilleri karıştırmayan not defterleri için, her dil için bir not defteri oluşturabilir ve not defterini çalıştırdığınızda bağımsız değişkenleri geçirebilirsiniz.
- Pencere öğesine bir
spark.sql()
çağrı kullanarak erişebilirsiniz. Örneğin, Python'da:spark.sql("select getArgument('arg1')").take(1)[0][0]
.
Bambulib
Bambulib sınırlamaları:
- Veri düzenleme için bambulib kullanımı yaklaşık 10 milyon satırla sınırlıdır. Bu sınır pandas'ı ve kümenizin işlem kaynaklarını temel alır.
- Veri görselleştirmeleri için bambulib kullanımı yaklaşık 10 bin satırla sınırlıdır. Bu sınır, çizime dayalıdır.