无模块名称pyspark错误

sd2nnvve  于 2022-11-01  发布在  Spark
关注(0)|答案(7)|浏览(527)

这是我正在学习的一个教程中的代码。我的同学没有在相同的代码中得到这个错误:

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)
v8wbuo2f

v8wbuo2f1#

你没有在你正在使用的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,这些说明可能会有所不同。

hmtdttj4

hmtdttj42#

只需用途:

import findspark
findspark.init()

import pyspark # only run after findspark.init()

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

python -m pip install findspark
s2j5cfk0

s2j5cfk03#

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

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

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

khbbv19g

khbbv19g4#

这是最新的解决方案,只适用于MAC用户。我已经通过pip install pyspark安装了pyspark。但是,当我在终端甚至python导入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最后一行中的www.example.com版本号

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

insrf1ej

insrf1ej5#

请确保首先使用conda安装pyspark:

conda install pyspark
yfjy0ee7

yfjy0ee76#

导入findspark文件
回溯(最近的呼叫排在最后):文件“"得第1行位于ImportError:没有名为“findspark”的模块

$ pip安装findspark

它将工作

2guxujil

2guxujil7#

我解决这个问题的方法是

  • 在本地计算机上打开一个全新.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:

$导入pyspark
您也可以尝试直接在实验室环境中运行pip命令。

相关问题