【问题标题】:findspark.init() IndexError: list index out of range: PySpark on Google Colabfindspark.init() IndexError:列表索引超出范围:Google Colab 上的 PySpark
【发布时间】:2019-09-08 22:27:46
【问题描述】:

我正在尝试在 Colab 上安装 PySpark。

!apt-get install openjdk-8-jdk-headless -qq > /dev/null
!wget -q https://www-us.apache.org/dist/spark/spark-2.4.1/spark-2.4.1-bin-hadoop2.7.tgz
!tar xf spark-2.4.1-bin-hadoop2.7.tgz
!pip install -q findspark

安装完上面的东西后,我设置环境如下:

import os
os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
os.environ["SPARK_HOME"] = "/content/spark-2.2.1-bin-hadoop2.7"

之后,我尝试如下初始化pyspark,结果报错。

import findspark
findspark.init()

错误:

IndexError                                Traceback (most recent call last)

<ipython-input-24-4e91d34768ac> in <module>()
      1 import findspark
----> 2 findspark.init()

/usr/local/lib/python3.6/dist-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

【问题讨论】:

标签: pyspark google-colaboratory


【解决方案1】:

你可以试试设置

os.environ["SPARK_HOME"] = "/content/spark-2.2.1-bin-hadoop2.7"

与您的上述安装相同的 spark 版本?在您的情况下,它将是 2.4.1 而不是 2.2.1。

os.environ["SPARK_HOME"] = "/content/spark-2.4.1-bin-hadoop2.7"

【讨论】:

    【解决方案2】:

    确保您的 Java 和 Spark 路径(包括版本)正确:

    os.environ["JAVA_HOME"] = "/usr/lib/jvm/java-8-openjdk-amd64"
    os.environ["SPARK_HOME"] = "/content/spark-2.4.4-bin-hadoop2.7"
    

    然后尝试通过打印路径来检查路径是否正确

    print(os.listdir('./sample_data'))
    

    如果您获得示例文件列表,代码将初始化且不会出现任何“索引超出范围”错误

    【讨论】:

      猜你喜欢
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 2018-09-13
      • 2011-10-31
      • 2015-06-26
      相关资源
      最近更新 更多