没有模块名称pyspark错误

Posted

技术标签:

【中文标题】没有模块名称pyspark错误【英文标题】:No module name pyspark error 【发布时间】:2015-12-16 01:03:35 【问题描述】:

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

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)

【问题讨论】:

你安装了 pyspark 模块吗? spark.apache.org/downloads.html 应该是。我从全班都在使用的虚拟机上运行它。只有另外一个人有同样的问题,这是因为他们没有加载配置文件,但在我的情况下,我确实加载了配置文件。 【参考方案1】:

您没有将pyspark 安装在您正在使用的python 安装可用的位置。要确认这一点,请在您的命令行终端上,激活您的 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 而异。

【讨论】:

抱歉延迟回复。你是对的。我的教授不得不重新安装它。 我们是否还需要输入 pip install pyspark,即使我们已经通过命令提示符设置了它,例如 ***.com/questions/52633549/… ?【参考方案2】:

只需使用:

import findspark
findspark.init()

import pyspark # only run after findspark.init()

如果您没有 findspark 模块,请安装:

python -m pip install findspark

【讨论】:

您使用的是哪个版本的 Python? Python 3.x.x 不知道我到底用的是哪一个...【参考方案3】:

您可以使用findspark 使 spark 在运行时可访问。通常findspark 会找到你安装spark 的目录,但如果它安装在非标准位置,你可以将它指向正确的目录。一旦你安装了findspark,如果spark安装在/path/to/spark_home就放

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

在脚本/笔记本的最顶部,您现在应该能够访问 pyspark 模块。

【讨论】:

【参考方案4】:

这是仅适用于 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

您需要更改最后一行中的 py4j-x.x.x-src.zip 版本号

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

. .bash_profile

【讨论】:

对于第一个命令,因为我使用的是 python 3.x。我改用pip3 install pyspark【参考方案5】:

确保首先使用 conda 安装 pyspark:

conda install pyspark

【讨论】:

【参考方案6】:

导入 findspark findspark.init()

Traceback(最近一次调用最后一次): 文件“”,第 1 行,在 ImportError:没有名为“findspark”的模块

$ pip install findspark

会有用的

【讨论】:

【参考方案7】:

我对这个问题的解决方案是

通过以下方式在本地计算机上打开一个全新的 .ipynb:
$jupyter-lab
在第一个运行此的单元格中的下一个:

$pip 安装 pyspark

我的输出是:

Collecting pyspark   
  Using cached pyspark-3.2.0.tar.gz (281.3 MB)
  Preparing metadata (setup.py) ... done 
Collecting py4j==0.10.9.2
  Using cached py4j-0.10.9.2-py2.py3-none-any.whl (198 kB) 
Building wheels for collected packages: pyspark   
  Building wheel for pyspark (setup.py) ... done   
  Created wheel for pyspark: filename=pyspark-3.2.0-py2.py3-none-any.whl size=281805913 sha256=26e539058858454dbbb48158111968d67e663c7b53e64c4fd91e38d92ac1cd80 
  Stored in directory: /Users/user/Library/Caches/pip/wheels/2f/f8/95/2ad14a4614b4a9f645ee928fbbd057b1b254c67adb494c9a58 
Successfully built pyspark Installing collected packages: py4j, pyspark 
Successfully installed py4j-0.10.9.2 pyspark-3.2.0 
Note: you may need to restart the kernel to use updated packages.
然后导入 pyspark:

$import pyspark

您不妨尝试直接在实验室环境中运行 pip 命令。

【讨论】:

以上是关于没有模块名称pyspark错误的主要内容,如果未能解决你的问题,请参考以下文章

从模块导入 myfunctions 的 azure pyspark;没有模块名称

查找“pyspark.worker”的模块规范时出错(ModuleNotFoundError:没有名为“pyspark”的模块)

在 pyspark 的映射器中导入错误

导入 Pyspark Delta Lake 模块时未找到模块错误

Jupyter中的PySpark SparkContext名称错误'sc'

无法导入 pyspark 统计模块