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 informasi lebih lanjut tentang fungsionalitas tingkat lanjut yang tersedia dengan editor, seperti pelengkapan otomatis, pemilihan variabel, dukungan multi-kursor, dan diff berdampingan, lihat Navigasi buku catatan dan editor file Databricks.
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.
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.
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
Notebook: Pilih sel Python atau SQL, lalu pilih Edit .Format Sel(s)
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 Notebook. 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.
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 mencantumkan 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
Dalam buku catatan Databricks, hasil dari sel bahasa SQL secara otomatis tersedia sebagai DataFrame implisit yang ditetapkan ke variabel _sqldf
. Anda kemudian dapat menggunakan variabel ini di sel Python dan SQL apa pun yang Anda jalankan setelahnya, terlepas dari posisinya di buku catatan.
Catatan
Fitur ini memiliki batasan berikut ini:
- Variabel
_sqldf
tidak tersedia di notebook yang menggunakan gudang SQL untuk komputasi. - Penggunaan
_sqldf
dalam sel Python berikutnya didukung di Databricks Runtime 13.3 ke atas. - Penggunaan
_sqldf
dalam sel SQL berikutnya hanya didukung pada Databricks Runtime 14.3 ke atas. - Jika kueri menggunakan kata kunci
CACHE TABLE
atauUNCACHE TABLE
,_sqldf
variabel tidak tersedia.
Cuplikan layar di bawah ini menunjukkan bagaimana _sqldf
dapat digunakan dalam sel Python dan SQL berikutnya:
Penting
Variabel _sqldf
ditetapkan ulang setiap kali sel SQL dijalankan. Untuk menghindari kehilangan referensi ke hasil DataFrame tertentu, tetapkan ke nama variabel baru sebelum Anda menjalankan sel SQL berikutnya:
Python
new_dataframe_name = _sqldf
SQL
ALTER VIEW _sqldf RENAME TO new_dataframe_name
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 DataFrame Python yang implisit yakni (_sqldf
) tidak didukung untuk sel yang dijalankan secara paralel. Selain itu, katalog default dan nama database digunakan selama eksekusi paralel. Jika kode Anda merujuk ke 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.