记录工作中遇到的一个问题:Could not write class xxx because it exceeds JVM code size limits...too large
问题描述
自己写了一个很普通的sparksql代码,把所有的代码都写到了main方法中,但由于业务需求,建了一个特别大的宽表。。。balabala,总之就是main方法很多行
写完后使用maven打包,报错Could not write class xxx because it exceeds JVM code size limits…too large
开发环境
- 操作系统: macOS
- 开发工具: IntelliJ IDEA 社区版2019.2
- 开发语言: scala
- 机器内存: 16G
报错原因
在Java或Scala中一个方法最大为64KB, 若方法body很大,导致编译失败
解决方法
方法拆分即可, 保证每个方法体size不超过64KB