Batasan yang diketahui Buku catatan Databricks
Artikel ini membahas batasan buku catatan Databricks yang diketahui. Untuk batas sumber daya tambahan, lihat Batas sumber daya.
Ukuran buku catatan
- Sel notebook individual memiliki batas input 6 MB.
- Ukuran buku catatan maksimum untuk revisi rekam jepret penyimpanan otomatis, impor, ekspor, dan kloning adalah 10 MB.
- Anda dapat menyimpan buku catatan secara manual hingga 32 MB.
Tabel hasil buku catatan
- Hasil tabel dibatasi hingga 10K baris atau 2MB, mana yang lebih rendah.
- Kluster pekerjaan memiliki ukuran output notebook maksimum 30 MB.
- Hasil perintah non tabular memiliki batas 20MB.
- Secara default, hasil teks mengembalikan maksimum 50.000 karakter. Dengan Databricks Runtime 12.2 LTS ke atas, Anda dapat meningkatkan batas ini dengan mengatur properti
spark.databricks.driver.maxReplOutputLength
konfigurasi Spark .
Debugger buku catatan
Batasan debugger buku catatan:
- Debugger hanya berfungsi dengan Python. Ini tidak mendukung Scala atau R.
- Debugger tidak berfungsi pada kluster mode akses bersama .
- Debugger tidak mendukung langkah ke file atau modul eksternal.
- Anda tidak dapat menjalankan perintah lain di buku catatan saat sesi debug aktif.
Notebook gudang SQL
Batasan notebook gudang SQL:
- Saat dilampirkan ke SQL warehouse, konteks eksekusi memiliki waktu habis idle selama 8 jam.
ipywidgets
Batasan ipywidgets:
- Notebook yang menggunakan ipywidgets harus dilampirkan ke kluster yang sedang berjalan.
- Status widget tidak dipertahankan di seluruh sesi notebook. Anda harus menjalankan kembali sel widget untuk merendernya setiap kali Anda melampirkan buku catatan ke kluster.
- Ipywidgets Kata Sandi dan Pengontrol tidak didukung.
- Widget HTMLMath dan Label dengan ekspresi LaTeX tidak dirender dengan benar. (Misalnya,
widgets.Label(value=r'$$\frac{x+1}{x-1}$$')
tidak dirender dengan benar.) - Widget mungkin tidak dirender dengan benar jika notebook berada dalam mode gelap, terutama widget berwarna.
- Output widget tidak dapat digunakan dalam tampilan dasbor buku catatan.
- Ukuran payload pesan maksimum untuk ipywidget adalah 5 MB. Widget yang menggunakan gambar atau data teks besar mungkin tidak dirender dengan benar.
Widget Databricks
Batasan widget Databricks:
Maksimal 512 widget dapat dibuat di notebook.
Nama widget dibatasi hingga 1024 karakter.
Label widget dibatasi hingga 2048 karakter.
Maksimal 2048 karakter dapat dimasukkan ke widget teks.
Mungkin ada maksimal 1024 pilihan untuk widget multi-pilih, kotak kombo, atau dropdown.
Ada masalah yang diketahui di mana status widget mungkin tidak jelas dengan benar setelah menekan Jalankan Semua, bahkan setelah menghapus atau menghapus widget dalam kode. Jika ini terjadi, Anda akan melihat perbedaan antara visual widget dan status cetak. Menjalankan kembali sel satu per satu mungkin melewati masalah ini. Untuk menghindari masalah ini sepenuhnya, Databricks merekomendasikan penggunaan ipywidgets.
Anda tidak boleh mengakses status widget secara langsung dalam konteks asinkron seperti utas, subproses, atau Streaming Terstruktur (foreachBatch), karena status widget dapat berubah saat kode asinkron sedang berjalan. Jika Anda perlu mengakses status widget dalam konteks asinkron, teruskan sebagai argumen. Misalnya, jika Anda memiliki kode berikut yang menggunakan utas:
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 merekomendasikan penggunaan argumen sebagai gantinya:
# 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()
Widget umumnya tidak dapat meneruskan argumen antara bahasa yang berbeda dalam buku catatan. Anda dapat membuat widget
arg1
di sel Python dan menggunakannya di sel SQL atau Scala jika Anda menjalankan satu sel sekaligus. Namun, ini tidak berfungsi jika Anda menggunakan Jalankan Semua atau jalankan buku catatan sebagai pekerjaan. Beberapa solusinya adalah:- Untuk buku catatan yang tidak mencampur bahasa, Anda bisa membuat buku catatan untuk setiap bahasa dan meneruskan argumen saat Menjalankan buku catatan.
- Anda dapat mengakses widget menggunakan
spark.sql()
panggilan. Misalnya, di Python:spark.sql("select getArgument('arg1')").take(1)[0][0]
.
Bamboolib
Batasan bamboolib:
- Menggunakan bamboolib untuk manipulasi data dibatasi hingga sekitar 10 juta baris. Batas ini didasarkan pada panda dan sumber daya komputasi kluster Anda.
- Menggunakan bamboolib untuk visualisasi data dibatasi hingga sekitar 10 ribu baris. Batas ini didasarkan pada plotly.