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 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 %sqlsihir 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 %pythonsihir bahasa.
    • 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.

Bahasa default 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 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.

Menu drop-down 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 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 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:

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:

  1. Jalankan sel.

  2. Klik Jalankan sekarang. Sel segera dijalankan.

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