SPARK_HOME环境变量已设置,但Jupyter Notebook无法识别它。(Windows)

8

我使用的是Windows 10操作系统。我想在Python 3.5的Jupyter Notebook上运行Spark。我安装了一个预编译版本的Spark并设置了SPARK_HOME环境变量。我还安装了findspark并运行了以下代码:

import findspark
findspark.init()

我收到了一个值错误:
ValueError: 无法找到Spark,请确保设置了SPARK_HOME环境变量或Spark位于预期位置(例如来自homebrew安装)。
但是,SPARK_HOME变量已设置。 这里 是我的系统上环境变量列表的截图。
有人遇到过这个问题或者知道如何解决吗?我只找到了一个旧的讨论,其中有人将SPARK_HOME设置为错误的文件夹,但我不认为这是我的情况。

我在你发布的截图中没有看到你的环境变量列表。你能否编辑这张图片来突出显示它们,以便更容易找到它们。 - dmlicht
1
亲爱的 dmlicht,您非常正确,它确实不在那里!可能是在 Windows 中截取屏幕的问题...这里是一个包含环境变量的图片链接。感谢您发现了这个问题!(我还尝试将其作为用户变量而不是系统变量来执行,但没有成功) - Andrea
10个回答

23

我遇到了同样的问题并浪费了很多时间。我找到了两个解决方案:

有两种解决方案:

  1. 将已下载的Spark文件夹复制到C目录中的某个位置,并按照下面的链接进行设置

    import findspark
    findspark.init('C:/spark')
    
  2. 使用findspark函数自动查找Spark文件夹

  3. import findspark
    findspark.find()
    

1
我该如何找到Spark文件夹? - Hamideh
@Hamideh 这取决于你如何安装它。你可以从Spark主页安装它,或者使用软件包管理器进行安装(例如macOS上的Homebrew)。无论它安装在哪里,只需将文件路径作为环境变量在系统中使用,或使用findspark解决方案即可。 - suntzu

5

只有在系统重启后,环境变量才会更新。重新启动系统后它会生效。


2
我曾经遇到同样的问题,通过安装“vagrant”和“virtual box”来解决它。(注意,我使用的是Mac OS和Python 2.7.11)
请看一下这个教程,它是哈佛CS109课程的教程: https://github.com/cs109/2015lab8/blob/master/installing_vagrant.pdf 在终端上执行“vagrant reload”后,我能够无错误地运行我的代码。 注意附加图像中“os.getcwd”命令结果的差异。

enter image description here


谢谢 - 我很想知道如何在纯Windows环境下完成这个任务(即不使用虚拟机),但如果没有其他人回答,我会在几天内接受您的回答作为答案。 - Andrea

0

当我在conda环境中使用pip install pyspark findspark安装Spark时,我遇到了同样的问题。

解决方法是这样的:

export /Users/pete/miniconda3/envs/cenv3/lib/python3.6/site-packages/pyspark/
jupyter notebook

您需要在上述命令中替换您的conda环境名称为cenv3


0

在设置环境变量后重新启动系统对我很有效。


0

我遇到了同样的错误。最初,我将我的Spark文件夹存储在文档目录中。后来,当我将它移动到桌面时,它突然开始识别所有系统变量,并且可以正常运行findspark.init()而没有任何错误。

你也可以试一下。


如果这是一个“试一试”的建议,那么应该将其作为注释,而不是在回答问题时说“肯定可以”。 - Unbranded Manchester

0

我有同样的问题,我通过关闭命令提示符再重新打开解决了它。我忘记在Windows上编辑环境变量后应该重新启动cmd。


0
如果有人使用较新的Spark版本(3.4.1):请确保在您的init()语句中包含“libexec”文件夹。
findspark.init("/opt/homebrew/Cellar/apache-spark/3.4.1/libexec/")

0

我发现在jupyter notebook中使用spark最简单的方法是:

1- 下载Spark

2- 解压到所需位置

3- 以通常方式打开jupyter notebook

4- 现在运行以下代码

import findspark
findspark.init("location of spark folder ")

# in my case it is like 

import findspark
findspark.init("C:\\Users\\raj24\\OneDrive\\Desktop\\spark-3.0.1-bin-hadoop2.7")

0

如果您没有在.bashrc文件中设置环境变量,可能会出现此错误。请按以下方式设置Python环境变量:

export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.8.1-src.zip:$PYTHONPATH
export PATH=$SPARK_HOME/bin:$SPARK_HOME/python:$PATH

 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接