安装

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 : Spark 预构建与用户提供的 Apache Hadoop

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

请注意,此 PySpark 的安装(带/不带特定 Hadoop 版本)是实验性的。它可能在次要版本之间发生更改或被删除。

使用 Conda

Conda是一个开源的包管理和环境管理系统(由 Anaconda 开发),最佳安装方式是通过 Miniconda Miniforge 。该工具是跨平台和语言无关的,实际上,conda可以替代 pip virtualenv

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

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

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

有关有用的conda命令的简要总结,请参见他们的 备忘单

手动下载

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

tar xzvf spark-3.5.3-bin-hadoop3.tgz

确保 SPARK_HOME 环境变量指向解压缩 tar 文件的目录。 更新 PYTHONPATH 环境变量,以便它可以在 SPARK_HOME/python/lib 下找到 PySpark 和 Py4J。 下面是实现这一点的一个示例:

cd spark-3.5.3-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 和 Spark Connect 上的 pandas API 必需;对于 Spark SQL 可选

pyarrow

>=4.0.0,<13.0.0

在 Spark 和 Spark Connect 上的 pandas API 必需;对于 Spark SQL 可选

numpy

>=1.15

在 Spark 和 MLLib 基于 DataFrame 的 API 中的 pandas 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 或更高版本,并且正确设置 JAVA_HOME 。 如果使用 JDK 11,请为与 Arrow 相关的功能设置 -Dio.netty.tryReflectionSetAccessible=true ,并参考 Downloading