java.lang.NoSuchMethodError: org.apache.spark.sql.types.StructType.names()[Ljava/lang/String;

原jar包版本2.4.3,现在集群运行环境是2.3.2,
代码中有一段要调用StructType.names()方法,结果报错
java.lang.NoSuchMethodError: org.apache.spark.sql.types.StructType.names()[Ljava/lang/String;

使用如下文章中的方法:https://blog.csdn.net/wuhuimin900/article/details/82902902 可以看出此类已经加载
也排除了jar包冲突
真是没有办法了

点进去spark的 源码,看见names()的注释

  • @since 2.4.0
    */
    def names: Array[String] = fieldNames

恍然大悟,原来names是2.4版本中的方法
讲names换成fieldNames,,问题解决

你可能感兴趣的:(spark)