Bagikan melalui


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 Gunakan Asisten Databricks untuk informasi selengkapnya.

Notebook Databricks juga menyertakan debugger interaktif bawaan untuk notebook Python. Lihat Men-debug buku catatan.

Memodularisasi kode Anda

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 berisi 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.

Perpustakaan Black formatter 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 paket Python black dan tokenize-rt yang terinstal.

Pada Databricks Runtime 11.3 LTS ke atas, Azure Databricks telah menginstal sebelumnya 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 file pyproject.toml di direktori root 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 %sqlmagis 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 %pythonmagic bahasa.
    • Menu Edit Notebook: Pilih sel Python atau SQL, lalu pilih Edit Format Sel(s).
  • Memformat beberapa sel

    Pilih beberapa sel lalu pilih >. 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.

Untuk mengkustomisasi bagaimana kueri SQL Anda diformat, lihat Pernyataan SQL format kustom.

Batasan pemformatan kode

  • Black memberlakukan standar PEP 8 untuk indentasi 4-spasi. 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 bawah nama buku catatan.

Bahasa bawaan notebook

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 perintah ajaib bahasa.

Mencampur bahasa

Secara pengaturan awal, sel menggunakan bahasa pengaturan awal dari notebook. Anda dapat mengambil alih bahasa default dalam sel dengan mengklik tombol bahasa dan memilih bahasa dari menu dropdown.

Menu tarik-turun pengaturan bahasa sel

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, perintah tersebut dikirim ke REPL dalam konteks pelaksanaan untuk notebook. 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 file dbutils. Misalnya, untuk menjalankan perintah dbutils.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 atau UNCACHE TABLE, _sqldf variabel tidak tersedia.

Cuplikan layar di bawah ini menunjukkan bagaimana _sqldf dapat digunakan dalam sel Python dan SQL berikutnya:

dataframe hasil sql

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:

Phyton

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:

  1. Jalankan sel.

  2. Klik Jalankan sekarang. Sel langsung dieksekusi.

    Jalankan sel SQL secara paralel dengan sel yang sedang berjalan saat ini.

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.

Menjalankan kode di Asisten pada komputasi tanpa server

Anda dapat menjalankan kode di Asisten di Databricks pada komputasi tanpa server, yang merupakan komputasi default pada Databricks. Untuk halaman di mana sudah ada komputasi yang dipilih (misalnya, notebook atau editor SQL), Databricks secara otomatis akan menggunakannya. Untuk informasi tentang jenis komputasi, lihat Komputasi.

Jika Anda tidak memiliki akses ke komputasi tanpa server, Anda harus memiliki instans komputasi yang tersedia untuk menjalankan kode di panel Asisten.

Menggunakan perintah ajaib

Notebook Databricks mendukung berbagai perintah ajaib yang memperluas fungsionalitas di luar sintaks standar untuk menyederhanakan tugas umum. Perintah magis diawali dengan % untuk magis baris dan sel.

Perintah ajaib Example Deskripsi
%python %python
print("Hello")
Ubah bahasa sel ke Python. Menjalankan kode Python dalam sel.
%r %r
print("Hello")
Alihkan bahasa sel ke R. Menjalankan kode R dalam sel.
%scala %scala
println("Hello")
Ubah bahasa sel ke Scala. Menjalankan kode Scala dalam sel.
%sql %sql
SELECT * FROM table
Alihkan bahasa sel ke SQL. Hasil tersedia seperti _sqldf dalam sel Python/SQL.
%md %md
# Title
Content here
Ubah bahasa sel ke Markdown. Merender konten Markdown dalam sel. Mendukung teks, gambar, rumus, dan LaTeX.
%pip %pip install pandas Instal paket Python (cakupan buku catatan). Lihat Pustaka Python yang spesifik untuk notebook.
%run %run /path/to/notebook Jalankan notebook lain, impor fungsi dan variabelnya. Lihat Alur kerja Notebook.
%fs %fs ls /path Jalankan perintah sistem file dbutils. Singkatan untuk dbutils.fs perintah. Lihat Bekerja dengan file.
%sh %sh ls -la Jalankan perintah shell. Hanya berjalan pada node pengemudi. Gunakan -e untuk berhenti jika terjadi kesalahan.
%tensorboard %tensorboard --logdir /logs Tampilkan UI TensorBoard secara langsung. Hanya tersedia di Databricks Runtime ML. Lihat TensorBoard.
%set_cell_max_output_size_in_mb %set_cell_max_output_size_in_mb 10 Atur ukuran output sel maksimum. Rentang: 1-20 MB. Berlaku untuk semua sel berikutnya dalam buku catatan.
%skip %skip
print("This won't run")
Melewati eksekusi sel. Mencegah sel dijalankan saat buku catatan dijalankan.

Catatan

IPython Automagic: Notebook Databricks mengaktifkan automagic IPython secara default, memungkinkan perintah tertentu seperti pip bekerja tanpa % awalan. Misalnya, pip install pandas berfungsi sama dengan %pip install pandas.

Penting

  • Variabel dan status terisolasi antara REPL bahasa yang berbeda. Misalnya, variabel Python tidak dapat diakses di sel Scala.
  • Sel catatan hanya dapat memiliki satu perintah ajaib untuk sel, dan harus menjadi baris pertama dalam sel.
  • %run harus berada di sel tersendiri, karena menjalankan seluruh notebook dalam satu baris.
  • Saat menggunakan %pip pada Databricks Runtime 12.2 LTS dan di bawahnya, tempatkan semua perintah penginstalan paket di awal notebook Anda saat status Python diatur ulang setelah penginstalan.