Azure Databricks 適用於 Python 開發人員

本節提供使用 Python 語言開發筆記本與Azure Databricks工作作業的指南,包括常見工作流程與任務的教學,以及 API、函式庫與工具的連結。

若要開始使用:

教學課程

下列教學課程提供範例程式碼和筆記本,有助了解一般工作流程。 如需將筆記本範例匯入工作區中的指示,請參閱匯入筆記本

資料工程

資料科學和機器學習

Python筆記本中的除錯

範例筆記本說明如何在 Databricks 筆記本中使用 Python 除錯器(pdb)。 要使用 Python 除錯器,你必須運行 Databricks Runtime 11.3 LTS 或以上版本。

在 Databricks Runtime 12.2 LTS 及以上版本中,你可以使用 variable explorer 來追蹤筆記本 UI 中Python變數的當前值。 當你逐一查看中斷點時,可以使用變數瀏覽器來觀察 Python 變數的值。

Python 除錯器範例筆記本

取得筆記本

注意

IPython 不支援 breakpoint(),因此無法在 Databricks Notebooks 中運作。 您可以使用 import pdb; pdb.set_trace(),而不是 breakpoint()

Python API

在 Databricks 外執行的 Python 程式碼通常可以在 Databricks 內執行,反之亦然。 如果您有現有的程序代碼,只要將其匯入 Databricks 即可開始使用。 如需詳細資料,請參閱下文的使用筆記本和 Databricks Git 資料夾管理程式碼

Databricks 可執行單機及分散式 Python 工作負載。 單機運算的話,你可以照常使用 Python API 和函式庫;例如 pandas 和 scikit-learn 會「直接運作」。 針對分散式 Python 工作負載,Databricks 提供兩種熱門的 API:Spark 上的 PySpark 與 Pandas API。

PySpark API

PySpark 是 Apache Spark 的官方 Python API,結合了 Python 與 Apache Spark 的強大功能。 PySpark 比 Spark 上的 Pandas API 更具彈性,並提供廣泛的支援與功能,涵蓋資料科學與工程功能,如 Spark SQL、結構化串流、MLLib 及 GraphX。

Spark 上的 Pandas API

注意

Koalas 開放原始碼專案現在建議切換為 Spark 上的 Pandas API。 Spark 上的 Pandas API 可用於運行 Databricks Runtime 10.0 及以上版本的叢集。 對於執行 Databricks Runtime 9.1 LTS 及以下版本的叢集,建議改用 Koalas

pandas 是一個Python套件,常被資料科學家用於資料分析與操作。 不過,pandas 不會擴展至巨量資料。 Spark 上的 Pandas API 會透過提供可在 Apache Spark 上運作的 Pandas 對等 API 來填補此空白。 此開放原始碼 API 是熟悉 Pandas 但不熟悉 Apache Spark 的資料科學家的理想選擇。

使用筆記本和 Databricks Git 資料夾管理程式碼

Databricks 筆記本支援Python。 這些筆記本提供與 Jupyter 類似的功能,但具有新增功能,例如使用巨量資料進行內建視覺效果、用於偵錯和效能監控的 Apache Spark 整合,以及用於追蹤機器學習實驗的 MLflow 整合。 首先 匯入筆記本。 擁有叢集存取權之後,您就可以將筆記本連結至叢集並執行筆記本

提示

若要重設筆記本的狀態,請重新啟動 iPython 核心。 對於 Jupyter 使用者,Jupyter 中的「重新啟動核心」選項對應至在 Databricks 中啟動新的會話。 要重新啟動Python筆記本的核心,請在筆記本工具列中點擊 compute selector,並將滑鼠移到列表中所附的叢集或 SQL 倉庫上,顯示側邊選單。 選取 新工作階段。 這會啟動一個新工作階段,重新啟動 Python 程序。

Databricks Git 資料夾可讓使用者將數位筆記本和其他檔案與 Git 存放庫同步。 Databricks 的 Git 資料夾有助於程式碼版本管理和協作,也能簡化匯入完整程式碼庫到 Azure Databricks、查看過去筆記本版本,以及整合 IDE 開發。 開始 複製遠端 Git 存放庫。 然後,您可以使用存放庫複製來開啟或建立筆記本、將筆記本連結至叢集,以及執行筆記本

叢集和程式庫

Azure Databricks compute 提供任何規模叢集的運算管理:從單一節點叢集到大型叢集皆可。 您可以根據需求自訂叢集硬體和程式庫。 資料科學家通常會透過建立叢集或使用現有的共用叢集開始工作。 擁有叢集存取權之後,您就可以將筆記本連結至叢集,或在叢集上執行工作。

  • 對於只需要單一節點的小型工作負載,資料科學家可以使用單一節點計算來節省成本。
  • 如需詳細提示,請參閱計算組態建議
  • 系統管理員可以設定 叢集原則,以簡化和指導叢集的建立。

Azure Databricks 叢集使用 Databricks 執行時環境,該環境提供許多現成整合的流行函式庫,包括 Apache Spark、Delta Lake、pandas 等。 你也可以安裝額外的第三方或自訂 Python 函式庫,方便筆記本和工作使用。

視覺效果

Azure Databricks Python筆記本內建支援多種類型的視覺化。 您也可以使用舊版視覺效果

您也可以使用協力廠商程式庫視覺化資料;有些已預先安裝在 Databricks Runtime 中,不過您也可以安裝自訂程式庫。 熱門選項包括:

工作

你可以在 Databricks 中透過排程或觸發的方式自動化 Python 工作負載 工作。 工作可以執行筆記本、Python 腳本和 Python 輪子檔案。

提示

若要排程 Python 腳本而不是使用筆記本,請在建立工作請求的正文中使用 spark_python_task 下的 tasks 欄位。

機器學習服務

Databricks 支援各種不同的機器學習 (ML) 工作負載,包括表格式資料的傳統 ML、電腦視覺的深度學習和自然語言處理、建議系統、圖表分析等等。 如需有關 Databricks 上機器學習的一般資訊,請參閱 Databricks 上的 AI 和機器學習

對於機器學習演算法,你可以使用Databricks Runtime for Machine Learning中預裝的函式庫,該軟體包含流行的Python工具,如scikit-learn、TensorFlow、Keras、PyTorch、Apache Spark MLlib和XGBoost。 您也可以安裝自訂程式庫

針對機器學習操作(MLOps),Azure Databricks 提供一個管理服務,支援open source library MLflow。 透過 MLflow 追蹤,您可以記錄模型開發,並以可重複使用的格式儲存模型。 您可以使用 MLflow 模型登錄來管理和自動化模型的推廣至生產環境。 工作模型服務允許將模型託管為批次和串流工作,以及托管為 REST 端點。 欲了解更多資訊與範例,請參閱 Databricks 上的 MLflow 或 MLflow Python API 文件

若要開始使用常見的機器學習工作負載,請參閱下列頁面:

整合式開發環境 (IDE)、開發人員工具與 SDK

除了在 Azure Databricks 筆記本中開發 Python 程式碼外,你還可以使用整合開發環境(IDE)進行外部開發,例如 PyCharm、Jupyter 和 Visual Studio Code。 若要同步處理外部開發環境與 Databricks 之間的運作,有幾個可用選項:

  • 程式碼:您可以使用 Git 同步處理程式碼。 請參見 Azure Databricks Git 資料夾
  • Libraries and Jobs:你可以在外部建立函式庫(例如 Python wheel 檔案),並上傳到 Databricks。 這些程式庫可以在 Databricks Notebooks 中匯入,或可用來建立工作。 請參閱 安裝函式庫Lakeflow Jobs
  • 遠端電腦執行:您可以從本機 IDE 執行程式碼,以進行互動式開發與測試。 IDE 可以與 Azure Databricks 通訊,執行 Apache Spark 及 Azure Databricks 叢集上的大型運算。 請參閱 Databricks Connect

Databricks 提供一組 SDK,包括 Python SDK,支援自動化及與外部工具整合。 您可以使用 Databricks SDK 來管理資源,例如叢集和程式庫、程式碼和其他工作區物件、工作負載和工作等等。 請參閱 Databricks SDK

如需 IDE、開發人員工具和 SDK 的詳細資訊,請參閱 本機開發工具

其他資源

  • 關於將Python工作負載遷移到 Databricks 的常見問題與技巧,可以在 Databricks 知識庫 找到。