今天遇到下面的报错:
py4j.protocol.Py4JJavaError: An error occurred while calling o41.collectToPython.
: java.lang.IllegalArgumentException: Unsupported class file major version 56
在网上查相似的问题,应该是JDK版本的原因。
更新:查了好几天终于找出原因了,附带解决方法。
1、查看电脑上的Java版本,Pycharm中自带的Java版本是11.0,而Hadoop的Java版本是12.0。
2、查看问题中的描述,Unsupported class file major version 56。在国外网站上查到,version 56是指Java12,所以是Hadoop中的Java12.0的原因。
参考的网址是:https://www.baeldung.com/java-lang-unsupportedclassversion
3、解决方法:改变系统里的Java版本(尽量降版本),也记得要改变配置的环境变量。
在我的电脑上,试了3个jdk版本,jdk-12.0.1(version 56)报错,jdk-11.0.4(version55)还是报错,最终用jdk1.8.0_201成功~
jdk下载的地址是:https://www.oracle.com/technetwork/java/javase/downloads/index.html