MacOS上的Spark安装和配置ImportError:没有名为pyspark的模块

时间:2017-01-19 06:51:05

标签: python apache-spark pyspark

我正在尝试在MacOS上配置apache-spark。所有在线指南要求下载spark tar并设置一些env变量或使用brew install apache-spark然后设置一些env变量。

现在我使用brew install apache-spark安装了apache-spark。 我在终端运行pyspark,我得到一个python提示符,表明安装成功。

现在,当我尝试将import pyspark放入我的python文件时,我面临错误ImportError: No module named pyspark

我无法理解的最奇怪的事情是如何启动pyspark的REPL并且无法将模块导入python代码。

我也尝试过pip install pyspark,但它也无法识别模块。

除了用自制软件安装apache-spark之外,我还设置了以下env变量。

if which java > /dev/null; then export JAVA_HOME=$(/usr/libexec/java_home); fi

if which pyspark > /dev/null; then
  export SPARK_HOME="/usr/local/Cellar/apache-spark/2.1.0/libexec/"
  export PYSPARK_SUBMIT_ARGS="--master local[2]"
fi

请在我的本地设备上运行pyspark代码,建议我的设置缺少什么。

2 个答案:

答案 0 :(得分:5)

你的python中不包含pyspark模块

试试这个

import os
import sys

os.environ['SPARK_HOME'] = "/usr/local/Cellar/apache-spark/2.1.0/libexec/"

sys.path.append("/usr/local/Cellar/apache-spark/2.1.0/libexec/python")
sys.path.append("/usr/local/Cellar/apache-spark/2.1.0/libexec/python/lib/py4j-0.10.4-src.zip")

try:
    from pyspark import SparkContext
    from pyspark import SparkConf

except ImportError as e:
    print ("error importing spark modules", e)
    sys.exit(1)

sc = SparkContext('local[*]','PySpark')

如果您不想要,请将它们包含在您的系统PATH中。并且不要忘记包含python路径。

export SPARK_HOME=/usr/local/Cellar/apache-spark/2.1.0/libexec/
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
export PATH=$SPARK_HOME/python:$PATH

答案 1 :(得分:1)

抱歉,我不使用MAC,但除了上面的答案,还有另一种方法:

sudo ln -s $SPARK_HOME/python/pyspark /usr/local/lib/python2.7/site-packages

Python将最后从/ path /到/ your / python / site-packages 读取模块