本節提供使用 Python 語言開發筆記本與Azure Databricks工作作業的指南,包括常見工作流程與任務的教學,以及 API、函式庫與工具的連結。
若要開始使用:
- 匯入程式碼:從檔案或 Git 存放庫匯入您自己的程式碼,或嘗試下列教學課程。 Databricks 建議使用互動式 Databricks Notebooks 學習。
- 在叢集上執行程式碼:建立您自己的叢集,或確保您擁有使用共用叢集的權限。 將札記本連接至叢集,然後執行札記本。
- 然後您可以:
- 使用 Apache Spark 處理較大的資料集
- 新增視覺效果
- 自動化您的工作負載作為一份工作
- 使用機器學習來分析您的資料
- 以整合式開發環境 (IDE) 開發
在工作區
教學課程
下列教學課程提供範例程式碼和筆記本,有助了解一般工作流程。 如需將筆記本範例匯入工作區中的指示,請參閱匯入筆記本。
資料工程
- 教學課程:使用 Apache Spark DataFrame 載入和轉換資料提供逐步解說,可協助您了解 Apache Spark DataFrame,以進行資料準備和分析。
- 教學:建立並管理 Delta Lake 表格。
- 教學課程:使用變更資料擷取建置 ETL 管線。
資料科學和機器學習
- 開始使用 Apache Spark DataFrame 進行資料準備和分析:教學課程:使用 Apache Spark DataFrame 載入和轉換資料
- 教學:Azure Databricks 上的端對端經典機器學習模型。 如需其他範例,請參閱 AI 和機器學習教學課程。
- AutoML 可讓您快速開始在自己的數據集上開發機器學習模型。 其明箱方法會產生具有完整機器學習工作流程的筆記本,您可以複製、修改及重新執行。
- 在 Unity 目錄 中管理模型生命週期
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 函式庫,方便筆記本和工作使用。
- 從 Databricks Runtime 版本資訊版本和相容性中的預設程式庫開始。 使用 Databricks 執行階段 來處理機器學習工作負載。 如需預先安裝的程式庫的完整清單,請參閱 Databricks Runtime 版本資訊版本和相容性。
- 使用 Notebook 範圍的 Python 函式庫自訂環境,允許你用 PyPI 或其他軟體庫的函式庫修改筆記本或工作環境。
%pip install my_librarymagic 命令會將my_library安裝到您目前連結叢集中的所有節點,但不會干擾以標準存取模式計算的其他工作負載。 - 根據需要,安裝非 Python 函式庫作為Compute-scoped 函式庫。
- 如需詳細資訊,請參閱 安裝連結庫。
視覺效果
Azure Databricks Python筆記本內建支援多種類型的視覺化。 您也可以使用舊版視覺效果。
您也可以使用協力廠商程式庫視覺化資料;有些已預先安裝在 Databricks Runtime 中,不過您也可以安裝自訂程式庫。 熱門選項包括:
工作
你可以在 Databricks 中透過排程或觸發的方式自動化 Python 工作負載 工作。 工作可以執行筆記本、Python 腳本和 Python 輪子檔案。
- 使用 Databricks UI 或 Databricks REST API來建立和更新作業。
- Databricks Python SDK 允許你以程式化方式建立、編輯和刪除工作。
- Databricks CLI 為自動化工作提供方便的命令列介面。
提示
若要排程 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 訓練 Scikit-learn 和追蹤:10 分鐘的教學課程:使用 Scikit-learn 在 Databricks 上進行機器學習
- 訓練深度學習模型:深度學習
- 超參數調諧: 使用 Optuna 進行超參數調諧
- 圖分析:如何在 Azure Databricks 上使用 GraphFrames
整合式開發環境 (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 的詳細資訊,請參閱 本機開發工具。
其他資源
- Databricks 學院提供許多主題的自學型和講師指導型課程。
- Databricks Labs 提供用於 Databricks Python開發的工具,例如 pytest plugin 以及 pylint 外掛。 Azure Databricks 也提供在工作區中管理Python單元測試檔案的功能。
- 支援 PySpark 與 pandas 之間互作性的功能包括下列各項:
- Python 與 SQL 資料庫連接工具包括:
- Databricks SQL 連接器用於 Python 允許你使用Python程式碼在Azure Databricks資源上執行 SQL 指令。
pyodbc 允許你從本地的 Python 程式碼透過 ODBC 連接到儲存在 Databricks 湖屋中的資料。
- 關於將Python工作負載遷移到 Databricks 的常見問題與技巧,可以在 Databricks 知識庫 找到。