【问题标题】:findspark.init() IndexError: list index out of range errorfindspark.init() IndexError: 列表索引超出范围错误
【发布时间】:2017-07-02 14:04:08
【问题描述】:

在 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

【问题讨论】:

    标签: python apache-spark pyspark py4j


    【解决方案1】:

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

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

    在那之后,它应该一切正常!

    【讨论】:

    • 这行得通,所以感谢您的解决方案!你能解释一下这两行是做什么的吗?
    【解决方案2】:

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

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

    基本上就是解压spark的目录。以后无论你在哪里看到spark_home 进入相同的安装目录。 我也尝试使用 toree 来创建内核,但它以某种方式失败了。内核将是更清洁的解决方案。

    【讨论】:

    • 对我来说,我必须使用“/”而不是“\”来使其工作,即 findspark.init("C:/Users/.....")。不知道为什么...
    【解决方案3】:

    您需要更新 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')
    

    【讨论】:

    • 从其他解决方案来看,这个解决方案似乎是多余的。您不必在两个地方都指定路径。
    • 我也会这么想的。但是,在我的环境中,调用 findspark.init() 时仍然需要指定路径。
    【解决方案4】:

    也许这会有所帮助:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-08
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多