Mengembangkan kode di buku catatan Databricks
Halaman ini menjelaskan cara mengembangkan kode di buku catatan Databricks, termasuk pelengkapan otomatis, pemformatan otomatis untuk Python dan SQL, menggabungkan Python dan SQL dalam buku catatan, dan melacak riwayat versi notebook.
Untuk detail selengkapnya tentang fungsionalitas tingkat lanjut yang tersedia dengan editor, seperti pelengkapan otomatis, pemilihan variabel, dukungan multi-kursor, dan diff berdampingan, lihat Menggunakan buku catatan Databricks dan editor file.
Saat Anda menggunakan notebook atau editor file, Asisten Databricks tersedia untuk membantu Anda membuat, menjelaskan, dan men-debug kode. Lihat Menggunakan Asisten Databricks untuk informasi selengkapnya.
Notebook Databricks juga menyertakan debugger interaktif bawaan untuk notebook Python. Lihat Men-debug buku catatan.
Dapatkan bantuan pengkodian dari Asisten Databricks
Asisten Databricks adalah asisten AI sadar konteks yang dapat Anda berinteraksi dengan menggunakan antarmuka percakapan, membuat Anda lebih produktif di dalam Databricks. Anda dapat menjelaskan tugas Anda dalam bahasa Inggris dan membiarkan asisten menghasilkan kode Python atau kueri SQL, menjelaskan kode kompleks, dan secara otomatis memperbaiki kesalahan. Asisten menggunakan metadata Unity Catalog untuk memahami tabel, kolom, deskripsi, dan aset data populer Anda di seluruh perusahaan Anda untuk memberikan respons yang dipersonalisasi.
Asisten Databricks dapat membantu Anda dengan tugas-tugas berikut:
- Buat kode.
- Kode debug, termasuk mengidentifikasi dan menyarankan perbaikan untuk kesalahan.
- Mengubah dan mengoptimalkan kode.
- Jelaskan kode.
- Membantu Anda menemukan informasi yang relevan dalam dokumentasi Azure Databricks.
Untuk informasi tentang menggunakan Asisten Databricks untuk membantu Anda membuat kode secara lebih efisien, lihat Menggunakan Asisten Databricks. Untuk informasi umum tentang Asisten Databricks, lihat Fitur yang didukung DatabricksIQ.
Mengakses buku catatan untuk pengeditan
Untuk membuka buku catatan, gunakan fungsi Pencarian ruang kerja atau gunakan browser ruang kerja untuk menavigasi ke buku catatan dan klik nama atau ikon buku catatan.
Telusuri data
Gunakan browser skema untuk menjelajahi objek Katalog Unity yang tersedia untuk buku catatan. Klik di sisi kiri buku catatan untuk membuka browser skema.
Tombol Untuk Anda hanya menampilkan objek yang telah Anda gunakan dalam sesi saat ini atau yang sebelumnya ditandai sebagai Favorit.
Saat Anda mengetik teks ke dalam kotak Filter , tampilan berubah untuk memperlihatkan hanya objek yang berisi teks yang Anda ketik. Hanya objek yang saat ini terbuka atau telah dibuka dalam sesi saat ini yang muncul. Kotak Filter tidak melakukan pencarian lengkap katalog, skema, tabel, dan volume yang tersedia untuk buku catatan.
Untuk membuka menu kebab, arahkan kursor ke atas nama objek seperti yang ditunjukkan:
Jika objek adalah tabel, Anda bisa melakukan hal berikut:
- Buat dan jalankan sel secara otomatis untuk menampilkan pratinjau data dalam tabel. Pilih Pratinjau di sel baru dari menu kebab untuk tabel.
- Menampilkan katalog, skema, atau tabel di Catalog Explorer. Pilih Buka di Catalog Explorer dari menu kebab. Tab baru terbuka memperlihatkan objek yang dipilih.
- Dapatkan jalur ke katalog, skema, atau tabel. Pilih Salin ... jalur dari menu kebab untuk objek.
- Tambahkan tabel ke Favorit. Pilih Tambahkan ke favorit dari menu kebab untuk tabel.
Jika objek adalah katalog, skema, atau volume, Anda dapat menyalin jalur objek atau membukanya di Catalog Explorer.
Untuk menyisipkan nama tabel atau kolom langsung ke dalam sel:
- Klik kursor Anda di sel di lokasi yang ingin Anda masukkan namanya.
- Pindahkan kursor Anda ke atas nama tabel atau nama kolom di browser skema.
- Klik panah ganda yang muncul di sebelah kanan nama objek.
Pintasan keyboard
Untuk menampilkan pintasan keyboard, pilih Bantuan > Pintasan keyboard. Pintasan keyboard yang tersedia bergantung pada apakah kursor berada dalam sel kode (mode edit) atau tidak (mode perintah).
Palet perintah
Anda dapat dengan cepat melakukan tindakan di buku catatan menggunakan palet perintah. Untuk membuka panel tindakan notebook, klik di sudut kanan bawah ruang kerja atau gunakan pintasan Cmd + Shift + P di MacOS atau Ctrl + Shift + P di Windows.
Mencari dan mengganti teks
Untuk mencari dan mengganti teks di dalam buku catatan, pilih Edit > Cari dan Ganti. Kecocokan saat ini disorot dengan warna oranye dan semua kecocokan lainnya disorot dengan warna kuning.
Untuk mengganti kecocokan saat ini, klik Ganti. Untuk mengganti semua kecocokan di buku catatan, klik Ganti Semua.
Untuk berpindah di antara kecocokan, klik tombol Sebelumnya dan Berikutnya. Anda juga dapat menekan shift +enter dan enter masing-masing untuk berpindah ke kecocokan sebelumnya dan berikutnya.
Untuk menutup alat temukan dan ganti, klik atau tekan esc.
Jalankan sel terpilih
Anda dapat menjalankan sel tunggal atau kumpulan sel. Untuk memilih sel tunggal, klik di mana saja dalam sel. Untuk memilih beberapa sel, tahan Command
tombol di MacOS atau Ctrl
tombol di Windows, dan klik sel di luar area teks seperti yang ditunjukkan pada cuplikan layar.
Untuk menjalankan yang dipilih Perilaku perintah ini bergantung pada kluster tempat buku catatan dilampirkan.
- Pada kluster yang menjalankan Databricks Runtime 13.3 LTS atau di bawahnya, sel yang dipilih dijalankan satu per satu. Jika terjadi kesalahan dalam sel, eksekusi berlanjut dengan sel berikutnya.
- Pada kluster yang menjalankan Databricks Runtime 14.0 atau lebih tinggi, atau pada gudang SQL, sel yang dipilih dijalankan sebagai batch. Kesalahan apa pun menghentikan eksekusi, dan Anda tidak dapat membatalkan eksekusi sel individual. Anda dapat menggunakan tombol Interupsi untuk menghentikan eksekusi semua sel.
Memodulasi kode Anda
Penting
Fitur ini ada di Pratinjau Publik.
Dengan Databricks Runtime 11.3 LTS ke atas, Anda dapat membuat dan mengelola file kode sumber di ruang kerja Azure Databricks, lalu mengimpor file-file ini ke buku catatan Anda sesuai kebutuhan.
Untuk informasi selengkapnya tentang bekerja dengan file kode sumber, lihat Berbagi kode antara notebook Databricks dan Bekerja dengan modul Python dan R.
Jalankan teks yang dipilih
Anda bisa menyoroti kode atau pernyataan SQL di sel buku catatan dan hanya menjalankan pilihan tersebut. Ini berguna ketika Anda ingin dengan cepat melakukan iterasi pada kode dan kueri.
Sorot baris yang ingin Anda jalankan.
Pilih Jalankan Jalankan > teks yang dipilih atau gunakan pintasan
Enter
Ctrl
+Shift
+ keyboard . Jika tidak ada teks yang disorot, Jalankan Teks Terpilih akan menjalankan baris saat ini.
Jika Anda menggunakan bahasa campuran dalam sel, Anda harus menyertakan %<language>
baris dalam pilihan.
Jalankan teks yang dipilih juga menjalankan kode yang diciutkan, jika ada dalam pilihan yang disorot.
Perintah sel khusus seperti %run
, %pip
, dan %sh
didukung.
Anda tidak dapat menggunakan Jalankan teks terpilih pada sel yang memiliki beberapa tab output (yaitu, sel tempat Anda menentukan profil data atau visualisasi).
Memformat sel kode
Azure Databricks menyediakan alat yang memungkinkan Anda memformat kode Python dan SQL di sel notebook dengan cepat dan mudah. Alat-alat ini memudahkan Anda untuk mempertahankan format kode dan membantu menegakkan standar pengkodean yang sama di seluruh buku catatan Anda.
Pustaka formatter hitam Python
Penting
Fitur ini ada di Pratinjau Publik.
Azure Databricks mendukung pemformatan kode Python menggunakan warna hitam dalam buku catatan. Notebook harus dilampirkan ke kluster dengan black
paket Python dan tokenize-rt
terinstal.
Pada Databricks Runtime 11.3 LTS ke atas, Azure Databricks telah menginstal black
dan tokenize-rt
. Anda dapat menggunakan formatter secara langsung tanpa perlu menginstal pustaka ini.
Pada Databricks Runtime 10.4 LTS ke bawah, Anda harus menginstal black==22.3.0
dan tokenize-rt==4.2.1
dari PyPI di notebook atau kluster Anda untuk menggunakan formatter Python. Anda bisa menjalankan perintah berikut ini di buku catatan Anda:
%pip install black==22.3.0 tokenize-rt==4.2.1
atau instal pustaka di kluster Anda.
Untuk detail selengkapnya tentang menginstal pustaka, lihat Manajemen lingkungan Python.
Untuk file dan notebook di folder Databricks Git, Anda dapat mengonfigurasi formatter Python berdasarkan pyproject.toml
file. Untuk menggunakan fitur ini, buat pyproject.toml
file di direktori akar folder Git dan konfigurasikan sesuai dengan format konfigurasi Black. Edit bagian [tool.black] dalam file. Konfigurasi diterapkan saat Anda memformat file dan buku catatan apa pun di folder Git tersebut.
Cara memformat sel Python dan SQL
Anda harus memiliki izin BISA MENGEDIT pada buku catatan untuk memformat kode.
Azure Databricks menggunakan pustaka Gethue/sql-formatter untuk memformat SQL dan formatter kode hitam untuk Python.
Anda dapat memicu pemformat dengan cara berikut:
Memformat sel tunggal
- Pintasan papan ketik: Tekan Cmd+Shift+F.
- Menu konteks perintah:
- Format sel SQL: Pilih Format SQL di menu dropdown konteks perintah sel SQL. Item menu ini hanya terlihat di sel notebook SQL atau yang memiliki
%sql
sihir bahasa. - Format sel Python: Pilih Format Python di menu dropdown konteks perintah sel Python. Item menu ini hanya terlihat di sel buku catatan Python atau yang memiliki
%python
sihir bahasa.
- Format sel SQL: Pilih Format SQL di menu dropdown konteks perintah sel SQL. Item menu ini hanya terlihat di sel notebook SQL atau yang memiliki
- Menu Edit Buku Catatan: Pilih sel Python atau SQL, lalu pilih Edit > Format Sel.
Memformat beberapa sel
Pilih beberapa sel lalu pilih Edit > Format Sel. Jika Anda memilih sel lebih dari satu bahasa, hanya sel SQL dan Python yang diformat. Ini termasuk yang menggunakan
%sql
dan%python
.Memformat semua sel Python dan SQL di buku catatan
Pilih Edit > Format Buku Catatan. Jika buku catatan Anda berisi lebih dari satu bahasa, hanya sel SQL dan Python yang diformat. Ini termasuk yang menggunakan
%sql
dan%python
.
Batasan pemformatan kode
- Hitam memberlakukan standar PEP 8 untuk indentasi 4 ruang. Indentasi tidak dapat dikonfigurasi.
- Pemformatan string Python yang disematkan di dalam SQL UDF tidak didukung. Demikian pula, pemformatan string SQL di dalam UDF Python tidak didukung.
Riwayat versi
Notebook Azure Databricks mempertahankan riwayat versi buku catatan, memungkinkan Anda menampilkan dan memulihkan rekam jepret buku catatan sebelumnya. Anda dapat melakukan tindakan berikut pada versi: menambahkan komentar, memulihkan dan menghapus versi, dan menghapus riwayat versi.
Anda juga dapat menyinkronkan pekerjaan Anda di Databricks dengan repositori Git jarak jauh.
Untuk mengakses versi buku catatan, klik di bilah samping kanan. Riwayat versi buku catatan muncul. Anda juga dapat memilih Riwayat Versi File>.
Menambahkan komentar
Untuk menambahkan komentar ke versi terbaru:
Klik versi.
Klik Simpan sekarang.
Dalam dialog Simpan Versi Buku Catatan, masukkan komentar.
Klik Simpan. Versi buku catatan disimpan dengan komentar yang dimasukkan.
Memulihkan versi
Untuk memulihkan versi:
Klik versi.
Klik Pulihkan versi ini.
Klik Konfirmasi. Versi yang dipilih menjadi versi terbaru buku catatan.
Menghapus versi
Untuk menghapus entri versi:
Klik versi.
Klik ikon sampah .
Klik Ya, hapus. Versi yang dipilih dihapus dari riwayat.
Menghapus riwayat versi
Riwayat versi tidak dapat dipulihkan setelah dihapus.
Untuk menghapus riwayat versi untuk buku catatan:
- Pilih Riwayat versi Hapus File>.
- Klik Ya, bersihkan. Riwayat versi buku catatan dibersihkan.
Bahasa kode dalam buku catatan
Mengatur bahasa default
Bahasa default untuk buku catatan muncul di samping nama buku catatan.
Untuk mengubah bahasa default, klik tombol bahasa dan pilih bahasa baru dari menu dropdown. Untuk memastikan bahwa perintah yang ada terus berfungsi, perintah dari bahasa default sebelumnya secara otomatis diawali dengan bahasa pemrogram ajaib bahasa.
Mencampur bahasa
Secara default, sel menggunakan bahasa default buku catatan. Anda dapat mengambil alih bahasa default dalam sel dengan mengklik tombol bahasa dan memilih bahasa dari menu dropdown.
Sebagai alternatif, Anda dapat menggunakan perintah ajaib bahasa pemrogram %<language>
di awal sel. Perintah ajaib yang didukung adalah: %python
, %r
, %scala
, dan %sql
.
Catatan
Saat Anda memanggil perintah ajaib bahasa pemrogram, perintah dikirim ke REPL dalam konteks eksekusi untuk buku catatan. Variabel yang didefinisikan dalam satu bahasa pemrogram (dan karenanya di REPL untuk bahasa pemrogram itu) tidak tersedia dalam REPL bahasa pemrogram lain. REPL hanya dapat berbagi status melalui sumber daya eksternal seperti file di DBFS atau objek dalam penyimpanan objek.
Notebook juga mendukung beberapa perintah ajaib tambahan:
%sh
: Memungkinkan Anda menjalankan kode shell di buku catatan Anda. Untuk menggagalkan sel jika perintah shell memiliki status keluar tidak nol, tambahkan opsi-e
. Perintah ini hanya berjalan pada driver Apache Spark, dan bukan pekerja. Untuk menjalankan perintah shell di semua node, gunakan skrip init.%fs
: Memungkinkan Anda menggunakan perintah sistem filedbutils
. Misalnya, untuk menjalankan perintahdbutils.fs.ls
untuk membuat daftar file, Anda dapat menentukan%fs ls
sebagai gantinya. Untuk informasi selengkapnya, lihat Bekerja dengan file di Azure Databricks.%md
: Memungkinkan Anda menyertakan berbagai jenis dokumentasi, termasuk teks, gambar, dan rumus serta persamaan matematika. Lihat bagian selanjutnya.
Penyorotan sintaksis SQL dan pelengkapan otomatis dalam perintah Python
Penyorotan sintaks dan pelengkapan otomatis SQL tersedia saat Anda menggunakan SQL di dalam perintah Python, seperti dalam spark.sql
perintah.
Menjelajahi hasil sel SQL di buku catatan Python menggunakan Python
Anda mungkin ingin memuat data menggunakan SQL dan menjelajahinya menggunakan Python. Dalam buku catatan Databricks Python, hasil tabel dari sel bahasa SQL secara otomatis tersedia sebagai Python DataFrame yang ditetapkan ke variabel _sqldf
.
Dalam Databricks Runtime 13.3 LTS ke atas, Anda juga dapat mengakses hasil DataFrame menggunakan sistem penembolokan output IPython. Penghitung perintah muncul dalam pesan output yang ditampilkan di bagian bawah hasil sel. Untuk contoh yang ditampilkan, Anda akan mereferensikan hasilnya sebagai Out[2]
.
Catatan
Variabel
_sqldf
dapat ditetapkan ulang setiap kali%sql
sel dijalankan. Untuk menghindari kehilangan referensi ke hasil DataFrame, tetapkan ke nama variabel baru sebelum Anda menjalankan sel berikutnya%sql
:new_dataframe_name = _sqldf
Jika kueri menggunakan widget untuk parameterisasi, hasilnya tidak tersedia sebagai Python DataFrame.
Jika kueri menggunakan kata kunci
CACHE TABLE
atauUNCACHE TABLE
, hasilnya tidak tersedia sebagai Python DataFrame.
Cuplikan layar menunjukkan contoh:
Menjalankan sel SQL secara paralel
Saat perintah berjalan dan buku catatan Anda dilampirkan ke kluster interaktif, Anda bisa menjalankan sel SQL secara bersamaan dengan perintah saat ini. Sel SQL dijalankan dalam sesi paralel baru.
Untuk menjalankan sel secara paralel:
Klik Jalankan Sekarang. Sel segera dijalankan.
Karena sel dijalankan dalam sesi baru, tampilan sementara, UDF, dan Python DataFrame implisit (_sqldf
) tidak didukung untuk sel yang dijalankan secara paralel. Selain itu, katalog default dan nama database digunakan selama eksekusi paralel. Jika kode Anda mengacu pada tabel dalam katalog atau database yang berbeda, Anda harus menentukan nama tabel menggunakan namespace tiga tingkat (catalog
.schema
.table
).
Menjalankan sel SQL pada gudang SQL
Anda dapat menjalankan perintah SQL di notebook Databricks di gudang SQL, jenis komputasi yang dioptimalkan untuk analitik SQL. Lihat Menggunakan buku catatan dengan gudang SQL.
Menampilkan gambar
Azure Databricks mendukung tampilan gambar di sel Markdown. Anda dapat menampilkan gambar yang disimpan di Ruang Kerja, Volume, atau FileStore.
Menampilkan gambar yang disimpan di Ruang Kerja
Anda dapat menggunakan jalur absolut atau jalur relatif untuk menampilkan gambar yang disimpan di Ruang Kerja. Untuk menampilkan gambar yang disimpan di Ruang Kerja, gunakan sintaks berikut:
%md
![my_test_image](/Workspace/absolute/path/to/image.png)
![my_test_image](./relative/path/to/image.png)
Menampilkan gambar yang disimpan dalam Volume
Anda dapat menggunakan jalur absolut untuk menampilkan gambar yang disimpan dalam Volume. Untuk menampilkan gambar yang disimpan dalam Volume, gunakan sintaks berikut:
%md
![my_test_image](/Volumes/absolute/path/to/image.png)
Menampilkan gambar yang disimpan di FileStore
Untuk menampilkan gambar yang disimpan di FileStore, gunakan sintaks berikut:
%md
![my_test_image](files/image.png)
Misalnya, jika Anda memiliki file gambar logo Databricks di FileStore:
dbfs ls dbfs:/FileStore/
databricks-logo-mobile.png
Saat Anda menyertakan kode berikut dalam sel Markdown:
gambar dirender dalam sel:
Seret dan letakkan gambar
Anda dapat menyeret dan meletakkan gambar dari sistem file lokal Anda ke dalam sel Markdown. Gambar diunggah ke direktori Ruang Kerja saat ini dan ditampilkan dalam sel.
Menampilkan persamaan matematika
Buku catatan mendukung KaTeX untuk menampilkan rumus dan persamaan matematika. Contohnya,
%md
\\(c = \\pm\\sqrt{a^2 + b^2} \\)
\\(A{_i}{_j}=B{_i}{_j}\\)
$$c = \\pm\\sqrt{a^2 + b^2}$$
\\[A{_i}{_j}=B{_i}{_j}\\]
render sebagai:
dan
%md
\\( f(\beta)= -Y_t^T X_t \beta + \sum log( 1+{e}^{X_t\bullet\beta}) + \frac{1}{2}\delta^t S_t^{-1}\delta\\)
where \\(\delta=(\beta - \mu_{t-1})\\)
render sebagai:
Menyertakan HTML
Anda dapat menyertakan HTML di buku catatan dengan menggunakan fungsi displayHTML
. Lihat HTML, D3, dan SVG di buku catatan untuk contoh cara melakukan tindakan ini.
Catatan
iframe displayHTML
disajikan dari domain databricksusercontent.com
dan kotak pasir iframe mencakup atribut allow-same-origin
. databricksusercontent.com
harus dapat diakses dari browser Anda. Jika saat ini diblokir oleh jaringan perusahaan Anda, ia harus ditambahkan ke daftar yang diizinkan.
Menautkan ke buku catatan lain
Anda dapat menautkan ke buku catatan atau folder lain di sel Markdown menggunakan jalur relatif. Tentukan atribut href
tag jangkar sebagai jalur relatif, dimulai dengan $
dan kemudian ikuti pola yang sama seperti pada sistem file Unix:
%md
<a href="$./myNotebook">Link to notebook in same folder as current notebook</a>
<a href="$../myFolder">Link to folder in parent folder of current notebook</a>
<a href="$./myFolder2/myNotebook2">Link to nested notebook</a>