共用方式為


適用於 Python 開發人員的 Azure Databricks

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

開始進行之前:

教學課程

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

資料工程

資料科學和機器學習

在 Python Notebooks 中偵錯

範例筆記本說明如何在 Databricks Notebooks 中使用 Python 偵錯工具 (pdb)。 若要使用 Python 偵錯工具,您必須執行 Databricks Runtime 11.3 LTS 或更新版本。

藉助 Databricks Runtime 12.2 LTS 和更新版本,您可以使用變數總管來追蹤筆記本 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:PySpark 和 Spark 上的 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 (EoS) 和更新版本的叢集。 針對執行 Databricks Runtime 9.1 LTS 和更低版本的叢集,請改用 Koalas

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

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

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

提示

若要完全重設筆記本的狀態,重新啟動 IPython 核心程序可能會很有用。 針對 Jupyter 使用者,Jupyter 中的 [重新啟動核心] 選項會對應至 Databricks 中的 [中斷連結並重新連結筆記本]。 若要在 Python 筆記本中重新啟動核心,請按下筆記本工具列中的 [計算選取器],並將滑鼠停留在清單中的已連結叢集或 SQL 倉儲上方,以顯示側邊功能表。 選取 [中斷連結並重新連結]。 這會中斷筆記本與叢集的連結並重新連結,進而重新啟動 Python 程序。

Databricks Git 資料夾可讓使用者同步處理筆記本和其他使用 Git 存放庫的檔案。 Databricks Git 資料夾有助於程式碼版本設定和共同作業,並可簡化將完整的程式碼存放庫匯入 Azure Databricks、檢視過去的筆記本版本以及整合 IDE 開發等流程。 從複製遠端 Git 存放庫開始著手。 然後,您可以使用存放庫複製來開啟或建立筆記本、將筆記本連結至叢集,以及執行筆記本

叢集和程式庫

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

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

Azure Databricks 叢集使用 Databricks Runtime,其提供許多現成可用的熱門程式庫,包括 Apache Spark、Delta Lake、Pandas 等等。 您也可以安裝額外的協力廠商或自訂 Python 程式庫,以搭配使用筆記本和工作。

視覺效果

Azure Databricks Python Notebooks 具有對許多類型的視覺效果的內建支援。 您也可以使用舊版視覺效果

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

工作

您可在 Azure Databricks 中將 Python 工作負載自動化為排程或觸發工作。 工作可以執行筆記本、Python 指令碼和 Python Wheel 檔案。

提示

若要排程 Python 指令碼而非筆記本,請使用建立工作要求本文中的 tasks 底下的 spark_python_task 欄位。

機器學習服務

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

針對 ML 演算法,您可以使用在適用於機器學習的 Databricks Runtime 中預先安裝的程式庫,其中包括熱門的 Python 工具,例如 Scikit-learn、TensorFlow、Keras、PyTorch、Apache Spark MLlib 和 XGBoost。 您也可以安裝自訂程式庫

針對機器學習作業 (MLOps),Azure Databricks 會為開放原始碼程式庫 MLflow 提供受管理的服務。 透過 MLflow 追蹤,您可以記錄模型開發,並以可重複使用的格式儲存模型。 您可以使用 MLflow 模型登錄來管理和自動化模型升階,進入生產。 工作模型服務允許將模型託管為批次和串流工作,以及托管為 REST 端點。 如需詳細資訊和範例,請參閱使用 MLflow 的 ML 生命週期管理MLflow Python API DOC

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

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

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

  • 程式碼:您可以使用 Git 同步處理程式碼。 請參閱 Databricks Git 資料夾的 Git 整合
  • 程式庫和工作:您可以在外部建立程式庫 (例如 Python Wheel 檔案),並將其上傳至 Databricks。 這些程式庫可以在 Databricks Notebooks 中匯入,或可用來建立工作。 請參閱程式庫排程及協調工作流程
  • 遠端電腦執行:您可以從本機 IDE 執行程式碼,以進行互動式開發與測試。 整合式開發環境 (IDE) 可以與 Azure Databricks 通訊,以在 Azure Databricks 叢集上執行 Apache Spark 和大型計算。 請參閱 Databricks Connect

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

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

其他資源