PySpark shell

注意

本文探讨适用于 Databricks Runtime 14.0 及以上版本的 Databricks Connect。

用于 Python 的 Databricks Connect 附带了一个 pyspark 二进制文件,它是配置为使用 Databricks Connect 的 PySpark REPL(Spark shell)。

在没有其他参数的情况下启动时,shell 会从环境(例如, DATABRICKS_ 环境变量或 DEFAULT 配置文件)中选取默认凭据,以连接到 Azure Databricks 群集。 有关配置连接的信息,请参阅 Databricks Connect 的计算配置

  1. 若要启动 Spark shell 并将其连接到正在运行的群集,请从已激活的 Python 虚拟环境运行以下命令之一:

    pyspark
    

    此时会显示 Spark shell,例如:

    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'.
    >>>
    

    启动 shell 后,该 spark 对象可在 Databricks 群集上运行 Apache Spark 命令。 运行简单的 PySpark 命令,例如 spark.range(1,10).show()。 如果未出现错误,则表示连接成功。

  2. 有关如何配合使用 Spark shell 和 Python 在计算上运行命令的信息,请参阅使用 Spark Shell 进行交互式分析

    使用内置的 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 工作区中的群集上运行,运行响应发送回给本地调用方。

  3. 若要停止 Spark shell,请按 Ctrl + dCtrl + z,或者运行命令 quit()exit()