没有模块名称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 Delta Lake 模块时未找到模块错误