Spark3.0.1运行Deequ2.0.0-spark-3.1报NoSuchMethodError如何解决
问题根因
你使用的Spark和Deequ版本不匹配:
- 当前运行的Spark版本为3.0.1
- 引入的Deequ包是
deequ-2.0.0-spark-3.1.jar,是针对Spark 3.1版本编译的
Spark 3.0的org.apache.spark.sql.catalyst.expressions.aggregate.AggregateFunction类中没有Deequ调用的toAggregateExpression$default$2()方法,因此触发NoSuchMethodError报错。
解决方法
二选一即可:
- 更换Deequ版本:下载适配Spark 3.0的Deequ安装包,比如
deequ-1.2.2-spark-3.0.jar,保证Deequ包名后缀的Spark版本和你本地运行的Spark版本完全一致 - 升级Spark版本:将本地Spark版本升级到3.1.x版本,即可适配当前使用的
deequ-2.0.0-spark-3.1.jar
内容的提问来源于stack exchange,提问作者Shiva Krishna
相关产品推荐
相关产品推荐

