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() 列表索引超出范围错误的主要内容,如果未能解决你的问题,请参考以下文章
IndexError:列表索引超出范围 - python 错误