findspark.init()失败-无法正确设置SPARK_HOME环境变量

时间:2019-07-02 18:38:24

标签: windows apache-spark pyspark

我是使用Spark的新手,我正在尝试使用Jupyter Notebook在本地(Windows)机器上玩Spark

我一直在关注一些设置环境变量的教程,以及使用多个功能通过Python和cmd进行设置的方法,但我无法获得任何介绍性的PySpark代码。

运行时(在Jupyter Notebook中,使用Python)

from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext('lcoal', 'Spark SQL') 

OR

from pyspark import SparkContext
from pyspark.sql import SQLContext
sc = SparkContext('C:\spark\spark-2.4.3-bin-hadoop2.7', 'Spark SQL') 

我得到了错误:

FileNotFoundError: [WinError 2] The system cannot find the file specified

另外,

我尝试使用findspark并遇到问题:

findspark.init()
OR
findspark.init("C:\spark\spark-2.4.3-bin-hadoop2.7")

我得到了错误:

IndexError: list index out of range

从这个主题的其他帖子中,我被认为可能会错误地设置SPARK_HOME变量。

我的环境变量如下: 我的火花在这里提取: C:\ spark \ spark-2.4.3-bin-hadoop2.7

HADOOP_HOME:C:\ spark \ spark-2.4.3-bin-hadoop2.7 SPARK_HOME:C:\ spark \ spark-2.4.3-bin-hadoop2.7 JAVA_HOME:C:\ Program Files \ Java \ jdk1.8.0_201

所有这些,包括%SPARK_HOME%\ bin,都已添加到我的PATH变量中。

最后,当我输入cmd> cd%SPARK_HOME%时,它正确地将我带到正确的目录\ spark \ spark-2.4.3-bin-hadoop2.7

据我所知,我的环境变量没有问题,所以我不确定为什么通过Juputer笔记本的pyspark无法找到我的spark_home(或者也许不是问题)。

将不胜感激!

谢谢!

1 个答案:

答案 0 :(得分:0)

您似乎已经完成了其余的过程,只需完成一个步骤。在Jupyter NB中,运行以下命令:

import os    
os.environ['SPARK_HOME'] = 'C:\\Users\\user_name\\Desktop\\spark'

它应该将此路径添加到您的环境变量中。您还可以通过在Jupyter NB中运行以下命令来检查它是否设置了正确的路径:

%env

for var in os.environ():  
    print(var,':',os.environ[var])

PS。请注意代码的缩进