没有模块名称pyspark错误

时间:2015-12-16 01:03:36

标签: python pyspark

这是我正在遵循的教程中的确切代码。我的同学没有用相同的代码得到这个错误:

ImportError                                Traceback (most recent call last)

<ipython-input-1-c6e1bed850ab> in <module>()
----> 1 from pyspark import SparkContext
      2 sc = SparkContext('local', 'Exam_3')
      3 
      4 from pyspark.sql import SQLContext
      5 sqlContext = SQLContext(sc)

ImportError: No module named pyspark

这是代码:

from pyspark import SparkContext
sc = SparkContext('local', 'Exam_3')
from pyspark.sql import SQLContext    
sqlContext = SQLContext(sc)
data = sc.textFile("exam3")
parsedData = data.map(lambda line: [float(x) for x in line.split(',')])
retail = sqlContext.createDataFrame(parsedData, 
     ['category_name','product_id', 'product_name', 'product_price'])
retail.registerTempTable("exam3")
print parsedData.take(3)

6 个答案:

答案 0 :(得分:13)

您没有在您正在使用的python安装位置安装pyspark。要确认这一点,请在命令行终端上激活virtualenv,输入您的REPL(python)并输入import pyspark

$ python
Python 3.5.0 (default, Dec  3 2015, 09:58:14) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.1.76)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyspark
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named 'pyspark'

如果您看到No module name 'pyspark' ImportError,则需要安装该库。退出REPL并输入:

pip install pyspark

然后重新输入repl以确认其有效:

$ python
Python 3.5.0 (default, Dec  3 2015, 09:58:14) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.1.76)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyspark
>>>

请注意,激活虚拟环境至关重要。在虚拟环境的目录中时:

$ source bin/activate

这些说明适用于基于unix的计算机,并且因Windows而异。

答案 1 :(得分:6)

您可以使用findspark在运行时访问spark。通常findspark将找到已安装spark的目录,但如果它安装在非标准位置,则可以将其指向正确的目录。安装findspark后,如果/path/to/spark_home安装了spark,则只需输入

import findspark
findspark.init('/path/to/spark_home')

位于脚本/笔记本的最顶层,您现在应该可以访问pyspark模块了。

答案 2 :(得分:2)

这是仅对 MAC 用户适用于我的最新解决方案。我已经通过pip install pyspark安装了pyspark。但是,当我在终端甚至在python import pyspark中执行pyspark时,它不起作用。我检查了笔记本电脑中是否已经安装了pyspark。

最后,我找到了解决方案。您只需要添加到bash配置文件中即可。

遵循步骤:

1)在终端窗口中键入以下内容以转到您的主文件夹。

cd ~

2)然后下面创建一个.bash_profile。 (如果已经存在,则可以跳过。)

touch .bash_profile

3)open -e .bash_profile

然后添加以下变量。

export SPARK_VERSION=`ls /usr/local/Cellar/apache-spark/ | sort | tail -1`
export SPARK_HOME="/usr/local/Cellar/apache-spark/$SPARK_VERSION/libexec"
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH

您需要更改LAST LINE中的py4j-x.x.x-src.zip版本号

4)分配完所有这些变量后,保存并关闭.bash_profile。然后输入以下命令以重新加载文件。

. .bash_profile

答案 3 :(得分:0)

只需使用:

import findspark
findspark.init()

import pyspark # only run after findspark.init()

如果您没有findspark模块,请使用以下命令进行安装:

python -m pip install findspark

答案 4 :(得分:0)

确保首先使用 conda 安装pyspark:

conda install pyspark

答案 5 :(得分:0)

导入 findspark findspark.init()

回溯(最近一次调用最后一次): 文件“”,第 1 行,在 导入错误:没有名为“findspark”的模块

$ pip install findspark

它会起作用