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

Posted

技术标签:

【中文标题】findspark.init() 列表索引超出范围错误【英文标题】:findspark.init() list index out of range error 【发布时间】:2019-06-18 21:34:45 【问题描述】:

使用 findspark.find() 时,我得到了安装 spark 的路径,但尝试 findspark.init(path) 时,我使用 jupyter notebook 得到列表索引超出范围错误

我已确保我的 SPARK_HOME 和 PATH 变量也已正确设置

下面的代码输出 spark home 路径

import findspark
findspark.find()

使用上述 spark home 路径的输出进行初始化

import findspark
findspark.init(path)

抛出列表索引超出范围错误

    133     # add pyspark to sys.path
    134     spark_python = os.path.join(spark_home, 'python')
--> 135     py4j = glob(os.path.join(spark_python, 'lib', 'py4j-*.zip'))[0]
    136     sys.path[:0] = [spark_python, py4j]
    137 

    IndexError: list index out of range

我不明白它如何输出正确的路径,但无法初始化spark

【问题讨论】:

【参考方案1】:

我通过将 Spark 和 Hadoop 目录移动到安装了 anaconda 和 jupyter 的 C 盘解决了这个问题。然后更新 SPARK_HOME 和 PATH 环境变量以反映新的目的地。

提交上述更改并重新启动终端后,我能够通过 jupyter notebook 连接到 spark 并执行代码。

【讨论】:

以上是关于findspark.init() 列表索引超出范围错误的主要内容,如果未能解决你的问题,请参考以下文章

Python - 索引错误 - 列表索引超出范围

为啥在遍历列表矩阵时出现列表索引超出范围错误?

IndexError:列表索引超出范围 - python 错误

Python:IndexError:列表索引超出范围

QQmlApplicationEngine 列表索引超出范围问题

列表索引超出范围 ConnectFour