这是我正在遵循的教程中的确切代码。我的同学没有用相同的代码得到这个错误:
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)
答案 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
它会起作用