分享方式:


搭配 Databricks Connect for Python 使用 Spark 殼層

注意

本文涵蓋 Databricks Runtime 13.3 LTS 和更新版本適用的 Databricks Connect。

本文說明如何使用適用於 Python 的 Databricks Connect 和 Spark 殼層。 Databricks Connect 可讓您將熱門應用程式連線到 Azure Databricks 計算。 請參閱 什麼是 Databricks Connect?

注意

開始使用 Databricks Connect 之前,您必須先 設定 Databricks Connect 用戶端

Spark 殼層 僅適用於 Azure Databricks 個人存取令牌驗證驗證

若要使用 Databricks Connect 搭配 Spark 殼層和 Python,請遵循這些指示。

  1. 若要啟動 Spark 殼層,並將其連線到執行中的叢集,請從您啟動的 Python 虛擬環境執行下列其中一個命令:

    如果您已設定 SPARK_REMOTE 環境變數,請執行下列命令:

    pyspark
    

    如果您尚未設定 SPARK_REMOTE 環境變數,請改為執行下列命令:

    pyspark --remote "sc://<workspace-instance-name>:443/;token=<access-token-value>;x-databricks-cluster-id=<cluster-id>"
    

    Spark 殼層隨即出現,例如:

    Python 3.10 ...
    [Clang ...] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    Welcome to
         ____              __
        / __/__  ___ _____/ /__
       _\ \/ _ \/ _ `/ __/  '_/
      /__ / .__/\_,_/_/ /_/\_\   version 13.x.dev0
         /_/
    
    Using Python version 3.10 ...
    Client connected to the Spark Connect server at sc://...:.../;token=...;x-databricks-cluster-id=...
    SparkSession available as 'spark'.
    >>>
    

現在執行簡單的 PySpark 命令,例如 spark.range(1,10).show()。 如果沒有錯誤,您已成功連線。

  1. 如需如何使用 Spark 殼層搭配 Python 在計算上執行命令的資訊,請參閱 Spark 殼層的互動式分析。

    使用內 spark 建變數來代表 SparkSession 執行中叢集上的 ,例如:

    >>> df = spark.read.table("samples.nyctaxi.trips")
    >>> df.show(5)
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    |tpep_pickup_datetime|tpep_dropoff_datetime|trip_distance|fare_amount|pickup_zip|dropoff_zip|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    | 2016-02-14 16:52:13|  2016-02-14 17:16:04|         4.94|       19.0|     10282|      10171|
    | 2016-02-04 18:44:19|  2016-02-04 18:46:00|         0.28|        3.5|     10110|      10110|
    | 2016-02-17 17:13:57|  2016-02-17 17:17:55|          0.7|        5.0|     10103|      10023|
    | 2016-02-18 10:36:07|  2016-02-18 10:41:45|          0.8|        6.0|     10022|      10017|
    | 2016-02-22 14:14:41|  2016-02-22 14:31:52|         4.51|       17.0|     10110|      10282|
    +--------------------+---------------------+-------------+-----------+----------+-----------+
    only showing top 5 rows
    

    所有 Python 程式代碼都會在本機執行,而涉及 DataFrame 作業的所有 PySpark 程式代碼都會在遠端 Azure Databricks 工作區的叢集上執行,並執行回應會傳回給本機呼叫者。

  2. 若要停止 Spark 殼層,請按 Ctrl + dCtrl + z,或執行 命令 quit()exit()