在筆記本中使用 Spark
您可以在 Spark 上執行許多不同類型的應用程式,包括 Python 或 Scala 指令碼中的程式碼、編譯為 JAVA 封存 (JAR) 的 JAVA 程式碼,以及其他程式碼。 Spark 通常用於兩種工作負載:
- 批次或流式處理工作用於導入、清理及轉換資料——通常作為自動化流程的一部分運行。
- 互動式分析工作階段,以探索、分析資料,以及將其視覺化。
筆記本編輯和程式碼基本概念
Databricks 筆記本是資料科學、工程和分析的主要工作環境。 它們是圍繞單元格構建的,單元格可以包含代碼或格式化文本 (Markdown)。 這種以單元為基礎的方法使您可以在一個地方輕鬆地進行實驗、測試以及解釋您的工作。 您可以執行單一儲存格、一組儲存格或整個筆記本,表格、圖表或純文字等輸出會直接顯示在執行的儲存格下方。 儲存格可以重新排列、折疊或清除,以保持筆記本井井有條且可讀。
Databricks 筆記本的一個主要優勢是多語言支持。 雖然預設通常是 Python,但您可以使用 %sql 或 %scala等魔術命令在同一筆記本中切換到 SQL、Scala 或 R。 這種靈活性意味著您可以在 SQL 中編寫 ETL 邏輯,在 Python 中編寫機器學習程式碼,然後使用 R 視覺化結果,所有這些都在一個工作流程中完成。 Databricks 還提供自動完成和語法醒目提示,讓您更容易發現錯誤並加快編碼速度。
在執行任何程式碼之前,必須將筆記本附加至叢集。 如果沒有附加的叢集,程式代碼儲存格就無法執行。 您可以從筆記本工具列中選取現有的叢集,或建立新的叢集,並視需要輕鬆分離和重新附加筆記本。 此連線可讓您的筆記本利用 Azure Databricks 中的分散式處理能力。
使用 Databricks Assistant
Databricks Assistant 是直接內建於筆記本中的 AI 支持編碼工具。 其目標是利用筆記本和工作區中的上下文,幫助您更有效地編寫、理解和改進程式碼。 它可以從自然語言提示生成新代碼,解釋複雜的邏輯,建議錯誤修復,優化性能,甚至重構或格式化代碼以提高可讀性。 這使得它不僅對學習 Spark 或 SQL 的初學者很有價值,而且對於想要加快開發速度和減少重複工作的經驗豐富的用戶也很有價值。
該助手具有 上下文感知能力,這意味著它可以使用有關您的筆記本、集群和數據環境的信息來提供量身定制的建議。 例如,如果您的工作區已啟用 Unity 目錄,它可以在撰寫 SQL 查詢時提取資料表名稱、資料行名稱和結構描述等中繼資料。 這允許您詢問諸如“從銷售表中按地區選擇平均銷售金額”之類的問題,並獲取適合您實際數據模型的工作 SQL 代碼。 同樣地,在 Python 中,您可以要求建立資料轉換或 Spark 作業,而無須從記憶體中呼叫每個函式簽章。
您可以透過兩種主要方式與助理互動:
自然語言提示——您可以在類似聊天的界面中輸入簡單的英語說明,它會將代碼插入您的筆記本。
斜線指令 - 快速指令,例如
/explain、/fix或 ,/optimize可讓您對選取的程式碼採取行動。 例如,/explain將複雜的函式分解為更簡單的步驟,/fix可以嘗試解決語法或執行階段錯誤,並/optimize建議效能改進,例如重新分割或使用有效率的 Spark 函式。
一個強大的功能是編輯模式,助手可以在多個單元格中提出更大的結構更改。 例如,它可能會將重複的邏輯重構為單一可重複使用的函數,或重組工作流程以獲得更好的可讀性。 您始終擁有控制權:建議是非破壞性的,這意味著您可以在將更改應用於筆記本之前查看並接受或拒絕它們。
共用和模組化程式碼
為了避免重複並改善可維護性,Databricks 支援將可重複使用的程式碼放入工作區中的檔案 (例如,.py模組) 中,筆記本可以匯入這些檔案。 有一些機制可以調度筆記本(亦即,從其他筆記本執行筆記本,或包含多個任務的作業),因此您可以構建利用共用函數或模組的工作流程。 使用 %run 是包含另一個筆記本的較簡單的方法,但有一些限制。
偵錯、版本歷程記錄和復原錯誤
Databricks 提供 Python 筆記本的內建互動式偵錯工具:您可以設定中斷點、逐步執行、檢查變數,以及逐步瀏覽程式碼執行。 這有助於比列印/日誌偵錯更有效地隔離錯誤。
筆記本還會自動維護版本歷史記錄:您可以查看過去的快照、提供版本描述、恢復舊版本或刪除/清除歷史記錄。 如果您使用 Git 整合,您可以在存放庫中同步筆記本/檔案,並進行其版本設定。
提示
如需在 Azure Databricks 中使用筆記本的詳細資訊,請參閱 Azure Databricks 檔中的 Notebooks 文章。