如何安装pyspark以便在独立脚本中使用?

37 投票
5 回答
56727 浏览
提问于 2025-04-18 16:33

我正在尝试用Python来使用Spark。我从下载页面安装了Spark 1.0.2,适用于Hadoop 2的二进制版本。我可以在Python的交互模式下运行快速入门示例,但现在我想写一个独立的Python脚本来使用Spark。快速入门文档说只需要导入pyspark,但这不管用,因为它不在我的PYTHONPATH里。

我可以运行bin/pyspark,并看到这个模块安装在SPARK_DIR/python/pyspark下面。我可以手动把它添加到我的PYTHONPATH环境变量里,但我想知道有没有更好的自动化方法。

有什么好的方法可以为独立脚本添加pyspark支持吗?我在Spark安装目录下没有看到setup.py。我该如何为一个依赖于Spark的Python脚本创建一个pip包呢?

5 个回答

0

不要在前面加上美元符号,直接使用 export SPARK_HOME 就可以了。

11

从Spark 2.2开始,PySpark现在可以在PyPI上获取了。感谢@Evan_Zamir。

pip install pyspark


在Spark 2.1时,你只需要下载Spark并运行setup.py文件:

cd my-spark-2.1-directory/python/
python setup.py install  # or pip install -e .

另外,还有一个问题单在讨论将其添加到PyPI的事宜。

15

我按照一个指南,在独立环境中安装了pyspark。具体步骤如下:

export SPARK_HOME="/opt/spark"
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH

接下来,你需要安装py4j:

pip install py4j

试试看:

./bin/spark-submit --master local[8] <python_file.py>
36

从Spark-2.2.0开始,可以用 pip install pyspark 在你的电脑上安装pyspark。

如果你使用的是旧版本,请按照以下步骤操作。需要在bashrc文件中添加Pyspark库到Python的路径中。

export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH

另外,别忘了设置SPARK_HOME环境变量。PySpark依赖于py4j这个Python包,所以你需要按照以下方式安装它。

pip install py4j

想了解更多关于独立的PySpark应用程序的信息,可以参考这篇 文章

8

你可以像你说的那样手动设置PYTHONPATH,这在你本地运行一些独立的非交互式脚本时可能会有用。

不过,(py)spark的核心就是把你的任务分发到集群中的各个节点上。每个集群都有一个配置,里面定义了一个管理器和很多参数;关于如何设置这些的详细信息可以在这里找到,其中包括一个简单的本地集群(这对于测试功能可能会有帮助)。

在实际使用中,你会通过spark-submit来提交任务,这样会把你的代码分发到集群的各个节点上,并为它们在这些节点上运行建立上下文。不过,你需要确保这些节点上的Python安装有所有必需的依赖(这是推荐的方式),或者把依赖和你的代码一起传过去(我不太清楚这个是怎么操作的)。

撰写回答