findspark.init()索引器错误:列表索引超出范围:Google Colab上的PySpark

findspark.init()索引器错误:列表索引超出范围:Google Colab上的PySpark,pyspark,google-colaboratory,Pyspark,Google Colaboratory,我正在尝试在Colab上安装PySpark !apt get install openjdk-8-jdk-headless-qq>/dev/null !wget-qhttps://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安装-q findspark 安装完以上内容后,我将环境设置为: 导入操作系统 os.env

我正在尝试在Colab上安装PySpark

!apt get install openjdk-8-jdk-headless-qq>/dev/null
!wget-qhttps://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安装-q findspark
安装完以上内容后,我将环境设置为:

导入操作系统
os.environ[“JAVA_HOME”]=“/usr/lib/jvm/JAVA-8-openjdk-amd64”
os.environ[“SPARK_HOME”]=“/content/SPARK-2.2.1-bin-hadoop2.7”
之后,我尝试按如下方式初始化pyspark,结果出错

导入findspark
findspark.init()
错误:

索引器错误回溯(最近一次调用)
在()
1进口金融园
---->2 findspark.init()
/init中的usr/local/lib/python3.6/dist-packages/findspark.py(spark\u home、python\u path、edit\u rc、edit\u profile)
133#将pyspark添加到sys.path
134 spark\u python=os.path.join(spark\u home,'python')
-->135 py4j=glob(os.path.join(spark_python,'lib','py4j-*.zip'))[0]
136系统路径[:0]=[spark_python,py4j]
137
索引器:列表索引超出范围

您能试着设置

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"

确保您的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'))

如果您得到一个示例文件列表,代码将在没有任何“索引超出范围”错误的情况下初始化

可能重复@pault是的,可能是,但我也看到了,没有解决。而且,我在google colab上设置了它,并正确设置了环境