我正在尝试在Mac上安装Spark。我使用自制软件安装了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

最佳答案

在Spark支持Java 11或更高版本(希望在the latest documentation时会提到它)之前,您必须添加一个标志以将Java版本设置为Java 8。

从Spark 2.4.x开始


Spark可在Java 8,Python 2.7 + / 3.4 +和R 3.1+上运行。对于Scala API,Spark 2.4.4使用Scala 2.12。您将需要使用兼容的Scala版本(2.12.x)


在Mac / Unix上,请参阅asdf-java以安装其他Java。

在Mac上,我可以在.bashrc中执行此操作,

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)


在Windows上,以Chocolately方式签出,但请认真使用WSL2或Docker运行Spark。



您也可以在spark-env.sh中进行设置,而不是为整个配置文件设置变量。

而且,当然,这一切都意味着除了现有的Java 11外,您还需要安装Java 8。

09-30 16:52
查看更多