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

时间:2014-08-08 13:59:15

标签: python apache-spark

我正在尝试使用Spark和Python。我从downloads页面安装了Spark 1.0.2 for Hadoop 2二进制分发版。我可以在Python交互模式中运行快速入门示例,但现在我想编写一个使用Spark的独立Python脚本。 quick start documentation表示只导入pyspark,但这不起作用,因为它不在我的PYTHONPATH上。

我可以运行bin/pyspark并看到该模块安装在SPARK_DIR/python/pyspark下方。我可以手动将其添加到我的PYTHONPATH环境变量中,但我想知道首选的自动方法。

为独立脚本添加pyspark支持的最佳方法是什么?我在Spark安装目录下的任何地方都看不到setup.py。我如何为依赖于Spark的Python脚本创建一个pip包?

5 个答案:

答案 0 :(得分:35)

Spark-2.2.0以后使用pip install pyspark在您的计算机上安装pyspark。

对于旧版本,请参阅以下步骤。在bashrc中的Python路径中添加Pyspark lib

export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH

也不要忘记设置SPARK_HOME。 PySpark依赖于py4j Python包。所以安装如下

pip install py4j

有关独立PySpark应用程序的更多详细信息,请参阅此post

答案 1 :(得分:15)

我安装了pyspark,以便在guide后独立使用。步骤是:

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

然后你需要安装py4j:

pip install py4j

试一试:

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

答案 2 :(得分: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 .

还有一个ticket用于将其添加到PyPI。

答案 3 :(得分:8)

您可以按照建议手动设置PYTHONPATH,在本地安装上测试独立的非交互式脚本时,这可能对您有用。

但是,(py)spark就是将作业分配到集群上的节点。每个集群都有一个定义管理器和许多参数的配置;设置此项的详细信息为here,并包含一个简单的本地群集(这可能对测试功能很有用)。

在生产中,您将通过spark-submit提交任务以激活spark,它将您的代码分发到群集节点,并为它们在这些节点上运行建立上下文。但是,您需要确保节点上的python安装具有所有必需的依赖项(推荐的方式),或者依赖项与代码一起传递(我不知道它是如何工作的)。

答案 4 :(得分:0)

不要export $SPARK_HOME,请export SPARK_HOME