安装 ¶
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
依赖性 ¶
|
软件包 |
支持的版本说明 |
|
|---|---|---|
|
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
。