使用 Python 和 R 模組
本文說明如何使用相對路徑,將儲存在工作區檔案中的自定義 Python 和 R 模組與 Databricks 筆記本一起匯入。 工作區檔案可協助您更緊密的開發生命週期,讓您 將程式代碼模組化、 將 %run 命令轉換為匯入語句,並將 Python 轉輪檔案重構為共同版本模組。 您也可以使用內建的 Databricks Web 終端機來測試程序代碼。
注意
在 Databricks Runtime 14.0 和更新版本中,本機執行之程式代碼的預設目前工作目錄 (CWD) 是包含執行筆記本或腳本的目錄。 這是 Databricks Runtime 13.3 LTS 和以下的行為變更。 請參閱 什麼是預設目前的工作目錄?。
匯入 Python 和 R 模組
重要
在 Databricks Runtime 13.3 LTS 和更新版本中,新增至 Python 的目錄,或結構化為 Python sys.path
套件的目錄,會自動散發至叢集中的所有執行程式。 在 Databricks Runtime 12.2 LTS 中,新增至 sys.path
的連結庫必須明確安裝在執行程式上。
在 Databricks Runtime 11.3 LTS 和更新版本中,筆記本的目前工作目錄會自動新增至 Python 路徑。 如果您使用 Git 資料夾,則會新增根存放庫目錄。
若要從另一個目錄匯入模組,您必須將包含模組的目錄新增至 sys.path
。 您可以使用相對路徑指定目錄,如下列範例所示:
import sys
import os
sys.path.append(os.path.abspath('..'))
您可以從儲存在工作區檔案中的模組匯入函式,就像從儲存為叢集連結庫或筆記本範圍連結庫的模組一樣:
Python
from sample import power
power.powerOfTwo(3)
R
source("sample.R")
power.powerOfTwo(3)
重要
當您使用 import
語句時,如果有多個相同名稱的鏈接庫存在,Databricks 會遵循設定優先順序。 請參閱 Python 連結 庫優先順序。
自動載入 Python 模組
如果您在開發 Python 程式代碼時編輯多個檔案,可以在任何筆記本數據格或 Python 檔案中使用下列命令來強制重載所有模組:
%load_ext autoreload
%autoreload 2
請注意,自動重載僅適用於驅動程式,而且不會將程式代碼重載至 UDF 的執行程式。
重構程式碼
程式代碼開發的最佳做法是將程式代碼模組化,以便輕鬆地重複使用。 您可以使用 工作區檔案建立自定義 Python 檔案,並使用 語句,讓這些檔案中的程式代碼可供筆記本使用 import
。
若要將筆記本程式代碼重構為可重複使用的檔案:
- 為您的程式代碼建立新的原始碼檔案。
- 將 Python 匯入語句新增至筆記本,讓新檔案中的程式代碼可供筆記本使用。
從命令移轉%run
如果您使用 %run
命令讓筆記本中定義的 Python 或 R 函式可供另一個筆記本使用,或是在叢集上安裝自定義 .whl
檔案,請考慮將這些自定義模組納入工作區檔案。 如此一來,您就可以讓筆記本和其他程式代碼模組保持同步,確保筆記本一律使用正確的版本。
%run
命令可讓您將一個筆記本包含在另一個筆記本內,而且通常用來讓筆記本使用支援的 Python 或 R 程式代碼。 在此範例中,名為 power.py
的筆記本包含下列程序代碼。
# 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)
接著,您可以使用 命令,讓定義於 power.py
中的函式可供不同的筆記本使用 %run
:
# This notebook uses a %run command to access the code in "power.py".
%run ./power
n_to_mth(3, 4)
使用工作區檔案,您可以直接匯入包含 Python 程式代碼並執行函式的模組。
from power import n_to_mth
n_to_mth(3, 4)
將 Python .whl
檔案重構至相對連結庫
您可以將自定義 .whl
檔案安裝到叢集,然後將它們匯入連結至該叢集的筆記本。 對於經常更新的程式代碼,此程式可能會很麻煩且容易出錯。 工作區檔案可讓您將這些 Python 檔案保留在相同的目錄中,以及使用程式代碼的筆記本,以確保您的筆記本一律使用正確的版本。
如需封裝 Python 專案的詳細資訊,請參閱本教學 課程。
使用 Azure Databricks Web 終端機進行測試
您可以使用 Azure Databricks Web 終端機來測試 Python 或 R 程式代碼的修改,而不需要將檔案匯入筆記本並執行筆記本。
- 開啟 Web 終端機。
- 變更為 目錄:
cd /Workspace/Users/<path-to-directory>/
。 - 執行 Python 或 R 檔案:
python file_name.py
或Rscript file_name.r
。