【发布时间】:2019-05-04 02:58:43
【问题描述】:
我正在尝试在我的 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
【问题讨论】:
-
即使使用“不支持的类文件主要版本 57”,此修复对我也有效
-
FIX: 为了解决这个问题,我编辑了 bash_profile 以确保 java 1.8 被用作全局默认值,如下所示:
touch ~/.bash_profile; open ~/.bash_profile添加export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)并保存在文本编辑中. -
该修复适用于 Mac 上的任何 Java。 Libexec 与许可或 oracle 无关
-
Spark 的依赖地狱。我讨厌它。
-
@James 嗨,我遵循了您的解决方案,但是当我在 Pychanr 终端中输入
java -version时,它仍然给我openjdk version "11.0.6" 2020-01-14 OpenJDK Runtime Environment (build 11.0.6+8-b765.1)
标签: java python macos apache-spark pyspark