Spark错误 - 不支持的类文件主版本

107

我正在尝试在我的 Mac 上安装 Spark。我已经使用 Homebrew 安装了 Spark 2.4.0 和 Scala。我已经在 Anaconda 环境中安装了 PySpark,并使用 PyCharm 进行开发。我已将其导出到我的 bash 配置文件:

export SPARK_VERSION=`ls /usr/local/Cellar/apache-spark/ | sort | tail -1`
export SPARK_HOME="/usr/local/Cellar/apache-spark/$SPARK_VERSION/libexec"
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH

但是我无法让它正常工作。

根据回溯信息,我怀疑这是由于Java版本引起的。如果有任何其他有用的信息,请在评论中提供,我将非常感激您的帮助解决此问题。

我得到了以下错误:

Traceback (most recent call last):
  File "<input>", line 4, in <module>
  File "/anaconda3/envs/coda/lib/python3.6/site-packages/pyspark/rdd.py", line 816, in collect
    sock_info = self.ctx._jvm.PythonRDD.collectAndServe(self._jrdd.rdd())
  File "/anaconda3/envs/coda/lib/python3.6/site-packages/py4j/java_gateway.py", line 1257, in __call__
    answer, self.gateway_client, self.target_id, self.name)
  File "/anaconda3/envs/coda/lib/python3.6/site-packages/py4j/protocol.py", line 328, in get_return_value
    format(target_id, ".", name), value)
py4j.protocol.Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: java.lang.IllegalArgumentException: Unsupported class file major version 55

2
这个修复方法对我有效,即使出现了“Unsupported class file major version 57”的错误。 - SchwarzeHuhn
2
修复:为了解决这个问题,我编辑了bash_profile文件,确保使用Java 1.8作为全局默认版本,具体操作如下:touch ~/.bash_profile; open ~/.bash_profile在文本编辑器中添加以下内容:export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)并保存。 - shbfy
这个修复程序适用于Mac上的任何Java。Libexec与许可证或Oracle无关。 - OneCricketeer
Spark的依赖关系问题真是让人头疼,我非常讨厌它。 - 0x4a6f4672
@James 你好,我按照你的解决方案操作了,但是当我在Pycharm终端输入java -version时,仍然显示openjdk version "11.0.6" 2020-01-14 OpenJDK Runtime Environment (build 11.0.6+8-b765.1) - wawawa
11个回答

0

你好,为了确保您放置的是正确的SPARK_HOME路径,您可以使用这个Python脚本来定位它:https://github.com/apache/spark/blob/master/python/pyspark/find_spark_home.py

python3 find_spark_home.py 

/usr/local/lib/python3.7/site-packages/pyspark

在我的 Mac 上,打开终端:

vim ~/.bashrc

并添加路径:

export JAVA_HOME=/Library/java/JavaVirtualMachines/adoptopenjdk-8.jdk/contents/Home/

export SPARK_HOME=/usr/local/lib/python3.7/site-packages/pyspark

export PYSPARK_PYTHON=/usr/local/bin/python3

最后应用更改

source ~/.bashrc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接