安装¶
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 预构建的 Spark3
: 为 Apache Hadoop 3.3 及更高版本预构建的 Spark(默认)
请注意,这种安装带有/不带有特定 Hadoop 版本的 PySpark 的方式是实验性的。 它可能会在次要版本之间更改或删除。
使用 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
请注意,用于 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
依赖项¶
软件包 |
支持的版本 说明 |
|
---|---|---|
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
并参阅 下载。