Databricks 支援使用不同的程式設計語言進行開發和數據工程。 本文概述可用的選項,其中可以使用這些語言及其限制。
建議
Databricks 針對新項目建議 Python 和 SQL:
- Python 是一種非常受歡迎的一般用途程式設計語言。 PySpark DataFrame 可讓您輕鬆地建立可測試的模組化轉換。 Python 生態系統也支援各種不同的連結庫,支援各種連結庫來擴充您的解決方案。
-
SQL 是一種非常受歡迎的語言,可藉由執行查詢、更新、插入和刪除數據等作業來管理及作關係型數據集。 如果您的背景主要位於資料庫或數據倉儲中,SQL 是不錯的選擇。 SQL 也可以使用
spark.sql內嵌在 Python 中。
下列語言的支援有限,因此 Databricks 不建議用於新的數據工程專案:
- Scala 是用於開發 Apache Spark™ 的語言。
- R 僅在 Databricks 筆記本中受到完全支援。
語言支援也會根據用來建置數據管線和其他解決方案的功能功能而有所不同。 例如,Lakeflow Spark 宣告式管線支援 Python 和 SQL,而工作流程可讓您使用 Python、SQL、Scala 和 Java 建立資料管線。
注意
其他語言可用來與 Databricks 互動,以查詢數據或執行數據轉換。 不過,這些互動主要是在與外部系統整合的背景下發生。 在這些情況下,開發人員可以使用幾乎任何程式設計語言,透過 Databricks REST API與 Databricks 互動、ODBC/JDBC 驅動程式、具有 Databricks SQL 連接器的特定語言 支援(Go、Python、Javascript/Node.js),或具有 Spark Connect 實作的語言,例如 Go 和 Rust。
工作區開發與本機開發
您可以在本機計算機上使用 Databricks 工作區或 IDE(集成開發環境)來開發數據專案和管線,但建議在 Databricks 工作區中啟動新專案。 工作區可使用網頁瀏覽器存取,它可讓您輕鬆存取 Unity 目錄中的數據,並支援強大的偵錯功能和功能,例如 Databricks Assistant。
使用 Databricks 筆記本或 SQL 編輯器,在 Databricks 工作區中開發程式代碼。 Databricks 筆記本即使在相同的筆記本內也支持多種程序設計語言,因此您可以使用 Python、SQL 和 Scala 進行開發。
直接在 Databricks 工作區中開發程式代碼有數個優點:
- 意見反應迴圈更快。 您可以立即在實際數據上測試撰寫的程式代碼。
- 內建、內容感知的 Databricks 小幫手可以加速開發並協助修正問題。
- 您可以在 Databricks 工作區中直接排定筆記本和查詢。
- 針對 Python 開發,您可以使用檔案作為工作區中的 Python 套件,正確建構 Python 程式代碼。
不過,IDE 內的本地開發提供下列優點:
- IDE 有更好的工具可處理軟體專案,例如瀏覽、程式代碼重構和靜態程式代碼分析。
- 您可以選擇如何控制您的原始碼,而且如果您使用 Git,本機可用的進階功能比在包含 Git 資料夾的工作區中提供的還多。
- 支援的語言範圍更廣。 例如,您可以使用 Java 開發程式代碼,並將其部署為 JAR 工作。
- 有更好的程式代碼偵錯支援。
- 使用單元測試時會有更好的支援。
語言選取範例
使用下列判定樹將資料工程的語言選取項目可視化:
開發 Python 程式代碼
Python 語言在 Databricks 上具有一流的支援。 您可以在 Databricks 筆記本、Lakeflow Spark 宣告式管線和工作流程中使用它來開發 UDF,也可以將它部署為 Python 腳本和輪子。
在 Databricks 工作區中開發 Python 專案時,無論是筆記本還是檔案中,Databricks 都提供程式碼完成、流覽、語法驗證、使用 Databricks Assistant 產生程式碼、互動式偵錯,以及 更多的工具。 開發的程式碼可以以互動方式執行,或者部署為 Databricks 工作流程、Lakeflow Spark Declarative Pipelines,甚至可在 Unity Catalog 中部署為函式。 您可以透過將程式代碼分割成 個別的 Python 套件,來結構化程式代碼,然後將其用於多個管線或任務。
Databricks 為 Visual Studio Code 提供 延伸模組,JetBrains 提供 PyCharm 的 外掛程式,可讓您在 IDE 中開發 Python 程式代碼、將程式代碼同步處理至 Databricks 工作區、在工作區內執行,並使用 Databricks Connect執行逐步偵錯。 接著,您可以使用 Databricks 資產套件組合 作為 Databricks 作業或管線 來部署開發的程式代碼。
開發 SQL 程式代碼
SQL 語言可以在 Databricks 筆記本內使用,或使用 SQL 編輯器做為 Databricks 查詢。 在這兩種情況下,開發人員都可以存取如程式碼自動完成這類的工具,以及「Databricks Assistant」這種可用於內容感知程式碼生成和修正問題的工具。 開發的程式碼可以被部署為工作或流水線。
Databricks 工作流程也可讓您執行儲存在檔案中的 SQL 程式代碼。 您可以使用 IDE 來建立這些檔案,並將其上傳至工作區。 SQL 的另一個熱門用法是在使用 dbt (資料建置工具)開發的數據工程管線中。 Databricks 工作流程支持協調 dbt 專案。
開發 Scala 程式代碼
Scala 是 Apache Spark™ 的原始語言。 這是一種強大的語言,但它有一個陡峭的學習曲線。 雖然 Scala 是 Databricks 筆記本 中支援的語言,但有一些與 Scala 類別和物件建立和維護方式相關的限制,可能會使複雜管線的開發更加困難。 一般而言,IDE 為 Scala 程式代碼的開發提供更好的支援,然後可以使用 Databricks 工作流程中的 JAR 工作進行部署。
後續步驟
- 在 Databricks 上開發 是提供有關 Databricks 不同開發選項的文件的入口點。
- 開發工具 頁面描述了各種可用於 Databricks 本地開發的工具,其中包括 Databricks 資產套件 和 IDE 的插件。
- 在 Databricks 筆記本中開發程式代碼 說明如何使用 Databricks 筆記本在 Databricks 工作區中開發程式代碼。
- 在 SQL 編輯器中撰寫查詢和探索資料,。 本文說明如何使用 Databricks SQL 編輯器來處理 SQL 程式代碼。
- 開發 Lakeflow Spark 宣告式管線 描述 Lakeflow Spark 宣告式管線的開發程式。
- Databricks Connect 可讓您連線到 Databricks 叢集,並從本機環境執行程序代碼。
- 瞭解如何使用 Databricks Assistant,以加快開發速度並解決程式碼問題。