如何在anaconda中导入pyspark



我正在尝试导入并使用带有anaconda的pyspark

在安装了spark并设置了$SPARK_HOME变量后,我尝试了:

$ pip install pyspark

这不会起作用(当然),因为我发现我需要通知python在$SPARK_HOME/python/下查找pyspark。问题是,要做到这一点,我需要设置$PYTHONPATH,而anaconda不使用该环境变量。

我试图将$SPARK_HOME/python/的内容复制到ANACONDA_HOME/lib/python2.7/site-packages/,但它不起作用。

有什么解决方案可以在蟒蛇身上使用pyspark吗?

这可能是最近才实现的,但我使用了以下方法,效果非常好。在这之后,我可以"将pyspark导入为ps"并使用它而不会出现任何问题。

conda install -c conda-forge pyspark

您可以简单地将PYSPARK_DRIVER_PYTHONPYSPARK_PYTHON环境变量设置为使用根Anaconda Python或特定的Anaconda环境。例如:

export ANACONDA_ROOT=~/anaconda2
export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_ROOT/bin/python

export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/envs/foo/bin/ipython 
export PYSPARK_PYTHON=$ANACONDA_ROOT/envs/foo/bin/python 

当您使用$SPARK_HOME/bin/pyspark/$SPARK_HOME/bin/spark-submit时,它将选择正确的环境。请记住,PySpark在所有机器上都必须使用相同的Python版本。

顺便说一句,即使不建议使用PYTHONPATH,也应该可以正常工作。

以下是我必须在.bashrc中放入的一整套环境变量,以使其在脚本和笔记本中都能工作

export ANACONDA_ROOT=~/anaconda2
export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_ROOT/bin/python
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
export PYLIB=/opt/spark-2.1.0-bin-hadoop2.7/python/lib
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH

也许这可以帮助一些人,根据Anaconda文档,您可以按照如下方式安装FindSpark:

conda install -c conda-forge findspark 

只有在安装了它之后,我才能导入FindSpark。不需要导出声明。

我认为您不需要也不能将pyspark作为模块安装。相反,我在~/.bash_profile中扩展了$PYTHONPATH,如下所示:

export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/build:$PYTHONPATH

之后,我能够import pyspark as ps。希望这对你也有用。

嘿,你可以试着在Anaconda powershell中运行这些行。直接来自https://anaconda.org/conda-forge/findspark

To install this package with conda run one of the following:
conda install -c conda-forge findspark
conda install -c conda-forge/label/gcc7 findspark
conda install -c conda-forge/label/cf201901 findspark

尝试使用该命令,它将帮助您安装pyspark 的较低版本

pip安装pyspark==3.x.x

最新更新