Bagikan melalui


Bekerja dengan modul Python dan R

Artikel ini menjelaskan cara menggunakan jalur relatif untuk mengimpor modul Python dan R kustom yang disimpan dalam file ruang kerja bersama buku catatan Databricks Anda. File ruang kerja dapat memfasilitasi siklus hidup pengembangan yang lebih ketat, memungkinkan Anda memodulasi kode Anda, mengonversi %run perintah untuk mengimpor pernyataan, dan merefaktor file roda Python ke modul versi bersama. Anda juga dapat menggunakan terminal web Databricks bawaan untuk menguji kode Anda.

Catatan

Dalam Databricks Runtime 14.0 ke atas, direktori kerja default saat ini (CWD) untuk kode yang dijalankan secara lokal adalah direktori yang berisi notebook atau skrip yang dijalankan. Ini adalah perubahan perilaku dari Databricks Runtime 13.3 LTS dan di bawahnya. Lihat Apa direktori kerja default saat ini?.

Mengimpor modul Python dan R

Penting

Dalam Databricks Runtime 13.3 LTS ke atas, direktori yang ditambahkan ke Python sys.path, atau direktori yang disusun sebagai paket Python, secara otomatis didistribusikan ke semua pelaksana dalam kluster. Di Databricks Runtime 12.2 LTS dan di bawahnya, pustaka yang sys.path ditambahkan ke harus diinstal secara eksplisit pada pelaksana.

Di Databricks Runtime 11.3 LTS ke atas, direktori kerja notebook Anda saat ini secara otomatis ditambahkan ke jalur Python. Jika Anda menggunakan folder Git, direktori repositori akar ditambahkan.

Untuk mengimpor modul dari direktori lain, Anda harus menambahkan direktori yang berisi modul ke sys.path. Anda dapat menentukan direktori menggunakan jalur relatif, seperti dalam contoh berikut:

import sys
import os
sys.path.append(os.path.abspath('..'))

Anda mengimpor fungsi dari modul yang disimpan dalam file ruang kerja seperti yang Anda lakukan dari modul yang disimpan sebagai pustaka kluster atau pustaka cakupan buku catatan:

Python

from sample import power
power.powerOfTwo(3)

R

source("sample.R")
power.powerOfTwo(3)

Penting

Saat Anda menggunakan import pernyataan, Databricks mengikuti prioritas yang ditetapkan jika ada beberapa pustaka dengan nama yang sama. Lihat Prioritas pustaka Python.

Pemuatan ulang otomatis untuk modul Python

Jika Anda mengedit beberapa file saat mengembangkan kode Python, Anda bisa menggunakan perintah berikut di sel buku catatan atau file python apa pun untuk memaksa pemuatan ulang semua modul:

%load_ext autoreload
%autoreload 2

Perhatikan bahwa autoreload hanya berfungsi pada driver dan tidak memuat ulang kode ke pelaksana untuk UDF.

Kode refaktor

Praktik terbaik untuk pengembangan kode adalah memodulasi kode sehingga dapat dengan mudah digunakan kembali. Anda dapat membuat file Python kustom dengan file ruang kerja dan membuat kode dalam file tersebut tersedia untuk buku catatan menggunakan pernyataan .import

Untuk merefaktor ulang kode buku catatan menjadi file yang dapat digunakan kembali:

  1. Buat file kode sumber baru untuk kode Anda.
  2. Tambahkan pernyataan impor Python ke buku catatan untuk membuat kode di file baru Anda yang tersedia untuk buku catatan.

Melakukan migrasi dari %run perintah

Jika Anda menggunakan %run perintah untuk membuat fungsi Python atau R yang ditentukan dalam buku catatan tersedia untuk buku catatan lain, atau menginstal file kustom .whl pada kluster, pertimbangkan untuk menyertakan modul kustom tersebut sebagai file ruang kerja. Dengan cara ini, Anda dapat menjaga buku catatan dan modul kode lainnya tetap sinkron, memastikan bahwa buku catatan Anda selalu menggunakan versi yang benar.

Perintah %run memungkinkan Anda menyertakan satu buku catatan di dalam yang lain dan sering digunakan untuk membuat kode Python atau R pendukung yang tersedia untuk buku catatan. Dalam contoh ini, buku catatan bernama power.py menyertakan kode di bawah ini.

# This code is in a notebook named "power.py".
def n_to_mth(n,m):
  print(n, "to the", m, "th power is", n**m)

Anda kemudian dapat membuat fungsi yang ditentukan di power.py yang tersedia untuk buku catatan lain dengan perintah %run:

# This notebook uses a %run command to access the code in "power.py".
%run ./power
n_to_mth(3, 4)

Dengan menggunakan file ruang kerja, Anda dapat langsung mengimpor modul yang berisi kode Python dan menjalankan fungsi .

from power import n_to_mth
n_to_mth(3, 4)

Merefaktor file Python .whl ke pustaka relatif

Anda dapat memasang file .whl kustom ke kluster dan kemudian mengimpornya ke buku catatan yang dilampirkan ke kluster tersebut. Untuk kode yang sering diperbarui, proses ini mungkin rumit dan rawan kesalahan. File ruang kerja memungkinkan Anda menyimpan file Python ini di direktori yang sama dengan buku catatan yang menggunakan kode, memastikan bahwa buku catatan Anda selalu menggunakan versi yang benar.

Untuk informasi selengkapnya tentang mengemas proyek Python, lihat tutorial ini.

Menggunakan terminal web Azure Databricks untuk pengujian

Anda dapat menggunakan terminal web Azure Databricks untuk menguji modifikasi pada kode Python atau R Anda tanpa harus mengimpor file ke buku catatan dan menjalankan buku catatan.

  1. Buka terminal web.
  2. Ubah ke direktori: cd /Workspace/Users/<path-to-directory>/.
  3. Jalankan file Python atau R: python file_name.py atau Rscript file_name.r.