安装

PySpark 包含在 Apache Spark 网站提供的官方 Spark 版本中。 对于 Python 用户,PySpark 还提供来自 PyPI 的 pip 安装。 这通常用于本地使用或作为客户端连接到集群,而不是设置集群本身。

本页包含使用 pip、Conda 安装 PySpark、手动下载和从源代码构建的说明。

支持的 Python 版本

Python 3.8 及以上版本。

使用 PyPI

使用 PyPI 安装 PySpark 如下所示

pip install pyspark

如果您想为特定组件安装额外的依赖项,您可以如下安装

# Spark SQL
pip install pyspark[sql]
# pandas API on Spark
pip install pyspark[pandas_on_spark] plotly  # to plot your data, you can install plotly together.
# Spark Connect
pip install pyspark[connect]

对于带有/不带有特定 Hadoop 版本的 PySpark,您可以使用 PYSPARK_HADOOP_VERSION 环境变量安装,如下所示

PYSPARK_HADOOP_VERSION=3 pip install pyspark

默认发行版使用 Hadoop 3.3 和 Hive 2.3。 如果用户指定不同版本的 Hadoop,pip 安装会自动下载不同的版本并在 PySpark 中使用。 下载可能需要一段时间,具体取决于网络和选择的镜像。 可以设置 PYSPARK_RELEASE_MIRROR 以手动选择镜像以加快下载速度。

PYSPARK_RELEASE_MIRROR=http://mirror.apache-kr.org PYSPARK_HADOOP_VERSION=3 pip install

建议在 pip 中使用 -v 选项来跟踪安装和下载状态。

PYSPARK_HADOOP_VERSION=3 pip install pyspark -v

PYSPARK_HADOOP_VERSION 中支持的值为

  • without: 使用用户提供的 Apache Hadoop 预构建的 Spark

  • 3: 为 Apache Hadoop 3.3 及更高版本预构建的 Spark(默认)

请注意,这种安装带有/不带有特定 Hadoop 版本的 PySpark 的方式是实验性的。 它可能会在次要版本之间更改或删除。

使用 Conda

Conda 是一个开源的软件包管理和环境管理系统(由 Anaconda 开发),最好通过 MinicondaMiniforge 安装。 该工具既是跨平台的又是语言无关的,实际上,conda 可以替换 pipvirtualenv

Conda 使用所谓的频道来分发软件包,并且与 Anaconda 本身的默认频道一起,最重要的频道是 conda-forge,它是社区驱动的打包工作,是最广泛和最新的(并且在大多数情况下也用作 Anaconda 频道的上游)。

要从终端创建一个新的 conda 环境并激活它,请按如下所示操作

conda create -n pyspark_env
conda activate pyspark_env

激活环境后,使用以下命令安装 pyspark、您选择的 python 版本以及您想在与 pyspark 同一会话中使用的其他软件包(您也可以分几个步骤安装)。

conda install -c conda-forge pyspark  # can also add "python=3.8 some_package [etc.]" here

请注意,用于 conda 的 PySpark 由社区单独维护; 虽然新版本通常会很快打包,但通过 conda(-forge) 的可用性与 PySpark 发布周期并非直接同步。

虽然在 conda 环境中使用 pip 在技术上是可行的(与above 中的命令相同),但不推荐这种方法,因为 pip 不与 conda 互操作。

有关有用的 conda 命令的简短摘要,请参阅其 备忘单

手动下载

PySpark 包含在 Apache Spark 网站提供的发行版中。 您可以从该站点下载您想要的发行版。 之后,将 tar 文件解压缩到您想要安装 Spark 的目录中,例如,如下所示

tar xzvf spark-3.5.5-bin-hadoop3.tgz

确保 SPARK_HOME 环境变量指向已提取 tar 文件的目录。 更新 PYTHONPATH 环境变量,以便它可以找到 SPARK_HOME/python/lib 下的 PySpark 和 Py4J。 下面显示了一个执行此操作的示例

cd spark-3.5.5-bin-hadoop3
export SPARK_HOME=`pwd`
export PYTHONPATH=$(ZIPS=("$SPARK_HOME"/python/lib/.zip); IFS=:; echo "${ZIPS[]}"):$PYTHONPATH

从源码安装

要从源代码安装 PySpark,请参阅 构建 Spark

依赖项

软件包

支持的版本 说明

py4j

>=0.10.9.7

必需

pandas

>=1.0.5

Spark 上的 pandas API 和 Spark Connect 需要;Spark SQL 可选

pyarrow

>=4.0.0,<13.0.0

Spark 上的 pandas API 和 Spark Connect 需要;Spark SQL 可选

numpy

>=1.15

Spark 上的 pandas API 和基于 DataFrame 的 MLLib API 需要;Spark SQL 可选

grpcio

>=1.48,<1.57

Spark Connect 需要

grpcio-status

>=1.48,<1.57

Spark Connect 需要

googleapis-common-protos

==1.56.4

Spark Connect 需要

请注意,PySpark 需要 Java 8(8u371 之前版本除外)、11 或 17,并且 JAVA_HOME 设置正确。 如果使用 JDK 11,请为 Arrow 相关功能设置 -Dio.netty.tryReflectionSetAccessible=true 并参阅 下载