首页 > 解决方案 > Python findSpark 和 PySpark 不工作。显示 IndexError: 列表索引超出范围

问题描述

我按照几种方法安装了 findspark 和 PySpark。我正在使用 Python 3.6,java jdk 11.0。我确实在 .bashrc 文件中添加了以下 2 行代码:

export PATH=$PATH:/home/jbustost/.local/bin
export SPARK_HOME=/home/jbustost/spark-2.4.4-bin-hadoop2.7

我已经安装了 Jupyter Notebook,它运行良好,但是当我尝试使用 findspark 时会发生这种情况。

import findspark
findspark.find() # out[2]:'/home/jbustos/spark-2.4.4-bin-hadoop2.7'
findspark.init() # it crashes here. below is the traceback.
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)

<ipython-input-7-5f9243a09cec> in <module>
----> 1 findspark.init()

~/.local/lib/python3.6/site-packages/findspark.py in init(spark_home, python_path, edit_rc, edit_profile)
    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

有人能指出我正确的方向吗?我错过了什么?我正在尝试在 linux mint 中安装它。谢谢!

标签: pythonpysparklinux-mintindex-error

解决方案


我认为 Spark 2.4.x 还不支持 JDK 11。我可以找到一张添加 Java 11 支持的票,但它仍处于开放状态。所以,我建议你现在使用 JDK 8。

除此之外,您还需要两件事。

  1. 需要添加$SPARK_HOME/binPATH.
  2. 需要添加 pyspark 驱动程序选项以将 jupyter 与 pyspark 链接。

您可以尝试将以下内容添加到 bashrc 吗?

export SPARK_HOME=/home/jbustost/spark-2.4.4-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:/home/jbustost/.local/bin:$PATH
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

您需要执行source ~/.bashrc以使更改生效。


推荐阅读