findspark.init() IndexError: 列出索引超出范围错误



在Python 3.5 Jupyter环境中运行以下命令时,我收到以下错误。关于是什么原因造成的任何想法?

import findspark
findspark.init()

错误:

IndexError                                Traceback (most recent call
last) <ipython-input-20-2ad2c7679ebc> in <module>()
      1 import findspark
----> 2 findspark.init()
      3 
      4 import pyspark
/.../anaconda/envs/pyspark/lib/python3.5/site-packages/findspark.py in init(spark_home, python_path, edit_rc, edit_profile)
    132     # add pyspark to sys.path
    133     spark_python = os.path.join(spark_home, 'python')
--> 134     py4j = glob(os.path.join(spark_python, 'lib', 'py4j-*.zip'))[0]
    135     sys.path[:0] = [spark_python, py4j]
    136 
IndexError: list index out of range

这很可能是由于系统上未正确设置SPARK_HOME环境变量。或者,您可以在初始化findspark时指定它,如下所示:

import findspark
findspark.init('/path/to/spark/home')

在那之后,它应该全部工作!

我遇到了同样的错误,并且能够通过输入确切的安装目录来使其工作:

import findspark
# Use this
findspark.init("C:UsersPolestarEmployeespark-1.6.3-bin-hadoop2.6")
# Test
from pyspark import SparkContext, SparkConf

基本上,它是提取火花的目录。将来无论在哪里看到spark_home输入相同的安装目录。 我也尝试使用 toree 来创建一个内核,但它不知何故失败了。内核将是一个更清洁的解决方案。

您需要

更新bash_profile中的SPARK_HOME变量。对我来说,以下命令有效(在终端中(:

export SPARK_HOME="/usr/local/Cellar/apache-spark/2.2.0/libexec/"

在此之后,您可以使用以下命令:

import findspark
findspark.init('/usr/local/Cellar/apache-spark/2.2.0/libexec')
<</div> div class="one_answers">

也许这会有所帮助:

我发现findspark.init((试图在.\spark-3.0.1-bin-hadoop2.7\bin\python\lib中查找数据,但python文件夹在bin文件夹之外。我只是运行findspark.init('.\spark-3.0.1-bin-hadoop2.7'(,没有'\bin'文件夹

相关内容

  • 没有找到相关文章

最新更新