共用方式為


使用 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

若要將筆記本程式代碼重構為可重複使用的檔案:

  1. 為您的程式代碼建立新的原始碼檔案。
  2. 將 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 程式代碼的修改,而不需要將檔案匯入筆記本並執行筆記本。

  1. 開啟 Web 終端機
  2. 變更為 目錄: cd /Workspace/Users/<path-to-directory>/
  3. 執行 Python 或 R 檔案: python file_name.pyRscript file_name.r