為Python開發者提供的數據庫
本節提供了使用Python語言在Databricks中開發筆記本和作業的指南。第一個小節提供了常見工作流和任務的教程鏈接。第二小節提供了到api、庫和關鍵工具的鏈接。
入門的基本工作流程是:
導入代碼:要麼從文件或Git回購中導入自己的代碼,要麼嚐試下麵列出的教程。Databricks推薦使用交互式的Databricks筆記本學習。
在集群上運行代碼:要麼創建自己的集群,要麼確保自己擁有使用共享集群的權限。將您的筆記本連接到集群,並運行該筆記本。
除此之外,你還可以擴展到更具體的主題:
教程
下麵的教程提供了示例代碼和筆記,以了解常見的工作流。看到導入一個筆記本有關如何將筆記本示例導入工作空間的說明。
交互式數據科學和機器學習
開始使用Apache Spark DataFrames進行數據準備和分析:數據框架介紹- Python
在Databricks上構建機器學習模型的端到端示例.有關其他示例,請參見10分鍾教程:在Databricks上開始學習機器學習和MLflow指南的Python快速入門.
磚AutoML讓您快速開始在自己的數據集上開發機器學習模型。它的玻璃盒方法生成具有完整機器學習工作流的筆記本,您可以克隆、修改和重新運行。
工程數據
數據框架介紹- Python提供了一個演練和常見問題解答,以幫助您了解用於數據準備和分析的Apache Spark DataFrames。
Delta Live Tables快速入門提供了構建和管理可靠數據管道的Delta Live Tables的演練,包括Python示例。
參考
下麵的小節列出了幫助您開始使用Python在Databricks中進行開發的關鍵特性和提示。
Python api
在Databricks之外運行的Python代碼通常可以在Databricks中運行,反之亦然。如果您有現有的代碼,隻需將其導入Databricks即可開始。看到用筆記本和Databricks Repos管理代碼下麵的細節。
Databricks可以運行單機和分布式Python工作負載。對於單機計算,你可以像往常一樣使用Python api和庫;例如,熊貓和科學學習將“行得通”。對於分布式Python工作負載,Databricks提供了兩個開箱即用的流行API: Spark上的Pandas API和PySpark。
Spark上的Pandas API
請注意
的考拉開源項目現在建議切換到Spark上的Pandas API。Spark上的Pandas API在正在運行的集群上可用數據庫運行時10.0(不支持)及以上。對於運行的集群Databricks Runtime 9.1 LTS下麵,請使用考拉代替。
熊貓是數據科學家通常用於數據分析和操作的Python包。然而,熊貓並不能擴展到大數據。Spark上的Pandas API通過提供在Apache Spark上工作的熊貓等效api來填補這一空白。這開源API是熟悉大熊貓但不熟悉Apache Spark的數據科學家的理想選擇。
用筆記本和Databricks Repos管理代碼
磚的筆記本支持Python。這些筆記本提供了與Jupyter類似的功能,但增加了諸如使用大數據的內置可視化、用於調試和性能監視的Apache Spark集成以及用於跟蹤機器學習實驗的MLflow集成。開始的導入一個筆記本.一旦您能夠訪問集群,您就可以了附加一個筆記本到集群,並運行筆記本.
提示
要完全重置筆記本的狀態,重啟iPython內核可能很有用。對於Jupyter用戶,Jupyter中的“重啟內核”選項對應於分離和重新連接Databricks中的筆記本。要在Python筆記本中重新啟動內核,請單擊左上角的集群下拉菜單,然後單擊分離和重新.這會將筆記本從集群中分離出來並重新連接它,這將重新啟動Python進程。
磚回購允許用戶將筆記本和其他文件與Git存儲庫同步。Databricks Repos有助於代碼版本控製和協作,它可以簡化將完整的代碼庫導入Databricks、查看過去的筆記本版本以及集成IDE開發。開始的克隆遠程Git存儲庫.然後你可以打開或創建筆記對於存儲庫克隆,把筆記本到集群,和運行筆記本.
集群和庫
磚集群為單個節點和大型集群提供計算管理。您可以根據自己的需要定製集群硬件和庫。數據科學家通常通過以下兩種方式開始工作創建一個集群或者使用現有的共享的集群.一旦您能夠訪問集群,您就可以了附加一個筆記本到集群或運行工作在集群上。
Databricks集群使用Databricks Runtime,它提供了許多開箱即用的流行庫,包括Apache Spark、Delta Lake、pandas等等。還可以安裝額外的第三方或自定義Python庫,用於筆記本和作業。
的默認庫開始磚運行時.使用用於機器學習的Databricks運行時對於機器學習的工作量。有關預安裝庫的完整列表,請參見磚的運行時版本.
使用以下命令自定義環境Notebook-scoped Python庫,它允許您使用來自PyPI或其他存儲庫的庫修改您的筆記本或作業環境。的
%皮普安裝my_library
神奇的命令安裝my_library
連接到當前連接的集群中的所有節點,但不會影響共享集群上的其他工作負載。將非python庫安裝為集群庫根據需要。
有關更多細節,請參見庫.
可視化
Databricks Python筆記本內置支持多種類型的可視化.你也可以用傳統的可視化.
您還可以使用第三方庫可視化數據;有些是在Databricks運行時中預安裝的,但是您也可以安裝自定義庫。受歡迎的選項包括:
工作
您可以按照計劃或觸發自動執行Python工作負載創建、運行和管理Databricks作業在磚。喬布斯可以運行筆記本、Python腳本和Python輪子。
有關通過UI創建作業的詳細信息,請參見創建一個工作.
的喬布斯API 2.1允許您創建、編輯和刪除作業。
的喬布斯CLI為調用Jobs API提供了一個方便的命令行接口。
提示
要調度Python腳本而不是筆記本,請使用spark_python_task
磁場下任務
在創建作業請求的主體中。
機器學習
Databricks支持各種各樣的機器學習(ML)工作負載,包括表格數據的傳統機器學習、用於計算機視覺和自然語言處理的深度學習、推薦係統、圖表分析等等。有關Databricks上機器學習的一般信息,請參閱Databricks機器學習指南.
對於ML算法,可以在用於機器學習的Databricks運行時其中包括流行的Python工具,如scikit-learn、TensorFlow、Keras、PyTorch、Apache Spark MLlib和XGBoost。你也可以安裝自定義庫.
對於機器學習操作(MLOps), Databricks為開源庫MLFlow提供了托管服務。MLflow跟蹤允許您記錄模型開發並以可重用的格式保存模型;的MLflow模型注冊讓您管理和自動化模型向生產的推廣;而且工作和模型服務,與Serverless實時推理或經典MLflow模型服務,允許托管模型作為批處理和流作業以及REST端點。有關更多信息和示例,請參見MLflow指南或者是MLflow Python API文檔.
要開始使用常見的機器學習工作負載,請參閱以下頁麵:
使用MLflow培訓scikit-learn和跟蹤:10分鍾教程:在Databricks上使用scikit-learn進行機器學習
訓練深度學習模型:深度學習
Hyperparameter調優:利用scikit-learn和MLflow並行化超參數調優
ide、開發人員工具和api
除了在Databricks筆記本中開發Python代碼之外,您還可以使用集成開發環境(ide)進行外部開發,例如PyCharm、Jupyter和Visual Studio code。要同步外部開發環境和Databricks之間的工作,有以下幾個選項:
代碼:可以使用Git同步代碼。看到Git與Databricks Repos集成.
庫和工作:可以在外部創建庫(如車輪),並上傳到Databricks。這些庫可以在Databricks筆記本中導入,也可以用於創建就業機會。看到庫而且創建、運行和管理Databricks作業.
遠程機器上執行:您可以從本地IDE運行代碼進行交互開發和測試。IDE可以與Databricks通信,在Databricks集群上執行大型計算。要學會使用磚連接要創建此連接,請參見使用ide與Databricks.
Databricks提供了一整套支持自動化和與外部工具集成的REST api。您可以使用api來管理資源,如集群和庫、代碼和其他工作區對象、工作負載和作業等。看到REST API(最新).
有關ide、開發人員工具和api的更多信息,請參見開發人員工具和指導.
額外的資源
的磚學院在許多主題上提供自我節奏和講師指導的課程。
支持PySpark和pandas之間互操作性的特性
Python和SQL數據庫連接
的Databricks SQL Connector for Python允許您使用Python代碼在Databricks資源上運行SQL命令。
pyodbc允許您從本地Python代碼通過ODBC連接到存儲在Databricks Lakehouse的數據。
將Python工作負載轉移到Databricks的常見問題和提示