共用方式為


適用於 Python 開發人員的 Azure Databricks

本節提供使用 Python 語言在 Azure Databricks 中開發筆記本和作業的指南。 第一個子區段提供常見工作流程和工作的教學課程連結。 第二個子區段提供 API、連結庫和金鑰工具的連結。

開始使用的基本工作流程如下:

教學課程

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

互動式數據科學和機器學習

資料工程

生產機器學習和機器學習作業

在 Python 筆記本中偵錯

範例筆記本說明如何在 Databricks 筆記本中使用 Python 調試程式 (pdb)。 若要使用 Python 調試程式,您必須執行 Databricks Runtime 11.3 LTS 或更新版本。

透過 Databricks Runtime 12.2 LTS 和更新版本,您可以使用 變數總 管來追蹤筆記本 UI 中 Python 變數的目前值。 您可以在逐步執行斷點時,使用變數總管觀察 Python 變數的值。

Python 調試程式範例筆記本

取得筆記本

注意

breakpoint()IPython 不支援,因此無法在 Databricks 筆記本中運作。 您可以使用 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 筆記本中重新啟動核心,請按下 筆記本工具列中的計算選取器 ,並將滑鼠停留在清單中的附加叢集或 SQL 倉儲上,以顯示側邊功能表。 選取 [ 中斷連結與重新附加]。 這會中斷筆記本與叢集的連結,並重新附加它,這會重新啟動 Python 程式。

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

叢集和連結庫

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

Azure Databricks 叢集使用 Databricks Runtime,其提供許多現成的熱門連結庫,包括 Apache Spark、Delta Lake、pandas 等等。 您也可以安裝額外的第三方或自定義 Python 連結庫,以搭配筆記本和作業使用。

視覺效果

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

您也可以使用第三方連結庫將數據可視化;有些已在 Databricks Runtime 中預安裝,但您也可以安裝自定義連結庫。 熱門選項包括:

工作

您可以依照排程或觸發 在 Databricks 中建立及執行 Azure Databricks 作業 ,將 Python 工作負載自動化。 作業可以執行筆記本、Python 腳本和 Python 轉輪檔案。

  • 如需透過UI建立作業的詳細資訊,請參閱 建立作業
  • Databricks SDK 可讓您以程式設計方式建立、編輯和刪除作業。
  • Databricks CLI 提供方便的命令行介面來自動化作業。

提示

若要排程 Python 腳本而非筆記本,請使用 spark_python_task 建立作業要求主體中的字段 tasks

機器學習服務

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

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

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

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

IDE、開發人員工具和 SDK

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

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

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

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

其他資源

  • Databricks 學院 針對許多主題提供自我節奏和講師主導的課程。
  • 支援 PySpark 與 pandas 之間互操作性的功能
  • Python 和 SQL 資料庫連線能力
    • 適用於 PythonDatabricks SQL 連接器可讓您使用 Python 程式代碼在 Azure Databricks 資源上執行 SQL 命令。
    • pyodbc 可讓您透過 ODBC 從本機 Python 程式代碼連線到儲存在 Databricks Lakehouse 中的數據。
  • 將 Python 工作負載移至 Databricks 的常見問題和秘訣