Pustaka Python yang tercakup di buku catatan

Pustaka yang dicakup per notebook memungkinkan Anda membuat, memodifikasi, menyimpan, menggunakan kembali, dan berbagi lingkungan Python kustom yang khusus untuk notebook tertentu. Saat Anda menginstal pustaka dengan cakupan notebook, hanya notebook saat ini dan job apa pun yang terkait dengannya yang dapat mengakses pustaka tersebut. Buku catatan lain yang dilampirkan ke kluster yang sama tidak terpengaruh.

Pustaka dalam cakupan notebook tidak dipertahankan antar sesi. Anda harus memasang ulang pustaka khusus notebook pada awal setiap sesi, atau setiap kali notebook dilepaskan dari kluster.

Databricks merekomendasikan menggunakan perintah magic %pip untuk menginstal pustaka Python khusus notebook. Pada notebook tanpa server yang menjalankan lingkungan versi 5 atau lebih tinggi, Anda juga dapat menggunakan %uv pip untuk penginstalan yang lebih cepat.

Anda bisa menggunakan %pip di buku catatan yang dijadwalkan sebagai pekerjaan. Jika Anda perlu mengelola lingkungan Python di notebook Scala, SQL, atau R, gunakan %python perintah ajaib bersama dengan %pip.

Anda mungkin mengalami peningkatan trafik ke node driver saat menggunakan instalasi pustaka pada cakupan notebook. Lihat Rekomendasi ukuran simpul driver.

Untuk menginstal pustaka untuk semua buku catatan yang dilampirkan ke kluster, gunakan pustaka kluster. Lihat Pustaka cakupan komputasi.

Untuk gambaran umum komprehensif opsi yang tersedia untuk menginstal pustaka Python di Databricks, lihat Manajemen lingkungan Python.

Mengelola pustaka dengan perintah %pip

Perintah ini %pip setara dengan perintah pip dan mendukung API yang sama. Bagian berikut berisi contoh cara menggunakan perintah %pip untuk mengelola lingkungan Anda. Untuk informasi lebih lanjut tentang menginstal paket Python dengan pip, lihat dokumentasi pip install dan halaman terkait.

Penting

  • %pip perintah tidak secara otomatis memulai ulang proses Python. Jika Anda menginstal paket baru atau memperbarui paket yang sudah ada, Anda mungkin perlu menggunakan dbutils.library.restartPython() untuk melihat paket baru. Lihat Memulai ulang proses Python di Azure Databricks.
  • Memutakhirkan, memodifikasi, atau menghapus paket Python inti (seperti IPython) dengan %pip dapat menyebabkan beberapa fitur berhenti berfungsi seperti yang diharapkan. Jika Anda mengalami masalah seperti itu, reset lingkungan dengan memulai ulang kluster atau memulai sesi baru.

Penginstalan yang lebih cepat dengan %uv pip

Catatan

%uv pip hanya tersedia di notebook tanpa server yang menjalankan lingkungan versi 5 atau lebih tinggi. Komputasi klasik dan versi lingkungan tanpa server yang lebih lama tidak mendukung %uv pip.

Perintah %uv pip ajaib adalah alternatif yang lebih cepat untuk %pip. %uv pip didukung oleh manajer paket uv dan berbagi lingkungan virtual notebook yang sama dengan %pip, sehingga paket yang diinstal dengan satu alat terlihat oleh alat lainnya.

%uv pip lebih cepat daripada %pip untuk penginstalan dan operasi baca-saja seperti list. Hal ini membuatnya sangat cocok untuk iterasi berdasarkan spesifikasi lingkungan.

%uv pipmendukung sub perintah standarpip: install, , uninstall, listshow, freeze, check, dan tree.

%uv pip install simplejson
%uv pip list

Pola penginstalan lain di halaman ini (volume, file ruang kerja, file persyaratan, kontrol versi, repositori privat) berfungsi dengan %uv pip. Anda dapat mengganti %pip dengan %uv pip dalam salah satu contoh ini.

%uv pip Keterbatasan

  • %uv pip uninstall tidak dapat sepenuhnya menghapus pustaka yang telah diinstal sebelumnya di lingkungan tanpa server. Hanya metadata paket yang dihapus. File yang mendasar tetap ada pada sistem file, dan paket masih dapat diimpor.
  • %uv pip tidak memeriksa konflik dependensi terhadap pustaka yang telah diinstal sebelumnya.
  • Setelah menjalankan perintah %uv pip, panel samping Lingkungan di notebook mungkin menampilkan beberapa pustaka prainstal sebagai diinstal oleh pengguna. Ini adalah masalah tampilan dan tidak memengaruhi fungsionalitas paket.
  • %uv pip ditujukan untuk iterasi interaktif yang cepat. Untuk menyiapkan lingkungan yang reprodusibel untuk notebook, tambahkan dependensi di panel samping Environment notebook.

Menginstal pustaka dengan %pip

%pip install matplotlib

Menginstal paket roda Python dengan %pip

%pip install /path/to/my_package.whl

Menghapus instalasi pustaka dengan %pip

Catatan

Anda tidak dapat menghapus instalasi pustaka yang disertakan dalam versi catatan rilis Databricks Runtime dan kompatibilitas atau pustaka yang telah diinstal sebagai pustaka kluster. Jika Anda telah menginstal versi pustaka yang berbeda dari yang disertakan dalam Databricks Runtime atau yang diinstal pada kluster, Anda dapat menggunakan %pip uninstall untuk mengembalikan pustaka ke versi default di Databricks Runtime atau versi yang diinstal pada kluster, tetapi Anda tidak dapat menggunakan perintah %pip untuk menghapus instalasi versi pustaka yang disertakan dalam Databricks Runtime atau yang diinstal pada kluster.

%pip uninstall -y matplotlib

Opsi -y diperlukan.

Menginstal pustaka dari sistem kontrol versi dengan %pip

%pip install git+https://github.com/databricks/databricks-cli

Anda dapat menambahkan parameter ke URL untuk menentukan hal-hal seperti versi atau subdirektori git. Lihat dukungan VCS untuk informasi lebih lanjut dan contoh penggunaan sistem kontrol versi lainnya.

Menginstal paket pribadi dengan kredensial yang dikelola oleh rahasia Databricks dengan %pip

pip mendukung penginstalan paket dari sumber privat denganautentikasi dasar , termasuk sistem kontrol versi privat dan repositori paket privat, seperti Nexus dan Artifactory. Manajemen rahasia tersedia melalui API Databricks Secrets, yang memungkinkan Anda menyimpan token autentikasi dan kata sandi. Gunakan API DBUtils untuk mengakses rahasia dari buku catatan Anda. Perhatikan bahwa Anda dapat menggunakan $variables dalam perintah ajaib.

Untuk menginstal paket dari repositori pribadi, tentukan URL repositori dengan opsi --index-url ke %pip install atau tambahkan ke file konfigurasi pip di ~/.pip/pip.conf.

token = dbutils.secrets.get(scope="scope", key="key")
%pip install --index-url https://<user>:$token@<your-package-repository>.com/<path/to/repo> <package>==<version> --extra-index-url https://pypi.org/simple/

Anda juga dapat menggunakan manajemen rahasia dengan perintah ajaib untuk menginstal paket pribadi dari sistem kontrol versi.

token = dbutils.secrets.get(scope="scope", key="key")
%pip install git+https://<user>:$token@<gitprovider>.com/<path/to/repo>

Menginstal paket dari DBFS dengan %pip

Penting

Setiap pengguna ruang kerja dapat mengubah file yang disimpan di DBFS. Azure Databricks merekomendasikan penyimpanan file di ruang kerja atau pada volume Unity Catalog.

Anda dapat menggunakan %pip untuk menginstal paket pribadi yang telah disimpan di DBFS.

Saat Anda mengunggah file ke DBFS, file tersebut secara otomatis mengganti nama file, mengganti spasi, tanda titik, dan tanda hubung dengan garis bawah. Untuk file wheel Python, pip mengharuskan agar nama file menggunakan tanda titik dalam versi (misalnya, 0.1.0) dan tanda hubung, bukan spasi atau garis bawah, sehingga nama-nama file ini tidak diubah.

%pip install /dbfs/mypackage-0.0.1-py3-none-any.whl

Menginstal paket dari volume dengan %pip

Penting

Fitur ini ada di Pratinjau Publik.

Dengan Databricks Runtime 13.3 LTS ke atas, Anda dapat menggunakan %pip untuk menginstal paket privat yang telah disimpan ke volume.

Saat Anda mengunggah file ke volume, file secara otomatis mengganti nama file, mengganti spasi, titik, dan tanda hubung dengan garis bawah. Untuk file wheel Python, pip mengharuskan agar nama file menggunakan titik dalam versi (misalnya, 0.1.0) dan tanda hubung alih-alih spasi atau garis bawah, sehingga nama file tersebut tidak diubah.

%pip install /Volumes/<catalog>/<schema>/<path-to-library>/mypackage-0.0.1-py3-none-any.whl

Menginstal paket yang disimpan sebagai file ruang kerja dengan %pip

Dengan Databricks Runtime 11.3 LTS ke atas, Anda dapat menggunakan %pip untuk menginstal paket privat yang telah disimpan sebagai file ruang kerja.

%pip install /Workspace/<path-to-whl-file>/mypackage-0.0.1-py3-none-any.whl

Menyimpan pustaka dalam file persyaratan

%pip freeze > /Workspace/shared/prod_requirements.txt

Setiap subdirektori apa pun di jalur file harus sudah ada. Jika Anda menjalankan %pip freeze > /Workspace/<new-directory>/requirements.txt, perintah akan gagal jika direktori /Workspace/<new-directory> belum ada.

Menggunakan file persyaratan untuk menginstal pustaka

File persyaratan berisi daftar paket yang akan diinstal menggunakan pip. Contoh penggunaan file persyaratan adalah:

%pip install -r /Workspace/shared/prod_requirements.txt

Lihat Format File Persyaratan untuk informasi lebih lanjut tentang file requirements.txt.

Rekomendasi ukuran simpul driver

Menggunakan pustaka pada cakupan notebook dapat menyebabkan lebih banyak lalu lintas ke node driver karena harus menjaga konsistensi lingkungan di seluruh node eksekutor.

Saat Anda menggunakan kluster dengan 10 node atau lebih, Databricks merekomendasikan spesifikasi ini sebagai persyaratan minimum untuk node driver:

  • Untuk kluster CPU 100 simpul, gunakan Standard_D8ds_v5.
  • Untuk kluster GPU 10 node, gunakan Standard_NC12.

Untuk kluster yang lebih besar, gunakan node driver yang lebih besar.

Perbedaan antara %pip, %sh pip, dan !pip

%shdan ! jalankan perintah shell dalam notebook; yang pertama adalah perintah sihir tambahan Databricks sementara yang terakhir adalah fitur IPython. pip adalah singkatan %pip ketika automagic diaktifkan, yang merupakan default di notebook Azure Databricks Python.

Pada Databricks Runtime 11.3 LTS ke atas, %pip, %sh pip, dan !pip semuanya menginstal pustaka sebagai pustaka Python dalam cakupan notebook. Pada Databricks Runtime 10.4 LTS dan versi yang lebih rendah, Databricks merekomendasikan agar hanya menggunakan %pip atau pip untuk menginstal pustaka dengan cakupan notebook. Perilaku %sh pip dan !pip tidak konsisten di Databricks Runtime 10.4 LTS dan versi yang lebih rendah.

Masalah umum

  • Pada Databricks Runtime 9.1 LTS, pustaka dengan cakupan notebook tidak kompatibel dengan pekerjaan streaming batch. Databricks merekomendasikan untuk menggunakan pustaka kluster atau kernel IPython sebagai gantinya.