共用方式為


教學課程:在無伺服器計算上執行 Python 程式碼

備註

本文適用於 Databricks Connect 15.4 LTS 和更新版本。

本文說明如何在 IDE 中建立專案、設定虛擬環境、安裝適用於 Python 的 Databricks Connect,以及在 Databricks 工作區中的無伺服器計算上執行程式代碼。

本教學課程使用 Python 3.12 和 Databricks Connect 16.4 LTS。 若要使用 Databricks Connect 的其他 Python 版本,它們必須相容。 請參閱 版本支援矩陣

需求

若要完成本教學課程,必須符合下列需求:

步驟 1:設定 Databricks 驗證

本教學課程使用 Databricks OAuth 使用者對計算機 (U2M) 驗證 和 Databricks 組 態配置檔 ,以向 Databricks 工作區進行驗證。

  1. 使用 Databricks CLI 在本地端啟動 OAuth 權杖管理,針對每個目標工作區執行以下命令。 在下列命令中,將 取代 <workspace-url> 為您的 Databricks 工作區實例 URL,例如 https://dbc-a1b2345c-d6e7.cloud.databricks.com

    databricks auth login --host <workspace-url>
    
  2. Databricks CLI 會提示您儲存輸入為 Databricks 組 態配置文件的資訊。 按 Enter 以接受建議的設定檔名稱,或輸入新或現有設定檔的名稱。 Databricks 建議使用 DEFAULT 作為配置檔名稱。

  3. 在網頁瀏覽器中,完成螢幕指示以登入您的 Databricks 工作區。

步驟 2:建立新的 Python 虛擬環境

  1. 建立您的項目資料夾,並在IDE 中開啟它。 例如,在 Visual Studio Code 主功能表中,按兩下 [檔案>開啟資料夾開啟]>

  2. 在專案資料夾根目錄開啟終端機視窗。 例如,在Visual Studio Code 主功能表中,單擊 [ 檢視>終端機]。

  3. 在終端機中執行下列命令,為專案資料夾根目錄呼叫 venv 的專案建立虛擬環境:

    python3.12 -m venv .venv
    
  4. 開啟虛擬環境:

    # Linux/Mac
    source .venv/bin/activate
    
    # Windows
    .venv\Scripts\activate
    

步驟 3:安裝 Databricks Connect

安裝 Databricks Connect。 如需 Databricks Connect 16.4 最新發行版本的相關信息,請參閱 Databricks Connect for Databricks Runtime 16.4

pip install "databricks-connect==16.4.*"

步驟 4:新增程式碼並執行

  1. 將新的 Python 檔案 main.py 新增至您的專案

  2. 在檔案中輸入下列程序代碼,將佔位元 <profile-name> 取代為步驟 1 的組態配置檔名稱,然後儲存盤案。 預設群組態設定檔名稱為 DEFAULT

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.serverless().profile("<profile-name>").getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
  3. 使用下列命令執行程式碼:

    python3 main.py
    

    傳回資料表的五個資料列:

    +--------------------+---------------------+-------------+-----------+---------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-16 22:40:45|  2016-02-16 22:59:25|         5.35|       18.5|     10003|      11238|
    | 2016-02-05 16:06:44|  2016-02-05 16:26:03|          6.5|       21.5|     10282|      10001|
    | 2016-02-08 07:39:25|  2016-02-08 07:44:14|          0.9|        5.5|     10119|      10003|
    | 2016-02-29 22:25:33|  2016-02-29 22:38:09|          3.5|       13.5|     10001|      11222|
    | 2016-02-03 17:21:02|  2016-02-03 17:23:24|          0.3|        3.5|     10028|      10028|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    

您已成功從 IDE 使用 Databricks Connect 在 Databricks 無伺服器計算上執行第一個查詢。

步驟 5:讓您的程式代碼生產就緒

在生產案例中,請務必避免在Spark工作階段產生器中使用計算規格。 例如,如果您將程式代碼部署至傳統叢集: Standard 或使用 Dedicated.serverless() Spark會話產生器中的API,則會使用傳統叢集作為用戶端來建立新的無伺服器Spark會話。

為了讓程式代碼具有彈性且可供生產環境使用,Spark 會話不應包含任何參數。

spark = DatabricksSession.builder.getOrCreate()

不過,當此程式代碼在 Databricks 上執行時,會使用 Databricks 計算的預設全域 Spark 會話。

若要在 IDE 中啟用無伺服器計算,請使用 DEFAULT 組態設定檔,此設定檔是在未指定任何參數時選取 DatabricksSession.builder 的:

  1. 使用DEFAULT 中的指示建立名為 的組態配置檔。

  2. 使用文字編輯器開啟 .databrickscfg 檔案,其位於:

    • Unix $HOME 、Linux 或macOS上的使用者主資料夾: ~/.databrickscfg、 或

    • Windows %USERPROFILE% 上的您的 (您的使用者首頁) 資料夾。 例如,針對macOS:

      nano ~/.databrickscfg
      
  3. serverless_compute_id = auto新增至DEFAULT設定檔:

    [DEFAULT]
    host                  = https://my-workspace.cloud.databricks.com
    auth_type             = databricks-cli
    serverless_compute_id = auto
    
  4. 儲存變更並結束編輯器。

  5. 修改程式代碼以使用一般 Spark 工作階段並加以執行:

    from databricks.connect import DatabricksSession
    
    spark = DatabricksSession.builder.getOrCreate()
    
    df = spark.read.table("samples.nyctaxi.trips")
    df.show(5)
    
    python3 main.py
    

您已使用 DATAbricks Connect 從 IDE 使用 DEFAULT 組態設定檔,成功地在 Databricks 無伺服器計算上執行生產就緒的程式代碼。

小提示

您也可以使用環境變數來設定與特定 Databricks 計算的連線:

  • 無伺服器: DATABRICKS_SERVERLESS_COMPUTE_ID=auto
  • 經典: DATABRICKS_CLUSTER_ID=<your_cluster_id>